楼主: liehuodgq
4383 1

[求助] 如何将SAS数据集中全部为空值的变量删除 [推广有奖]

  • 0关注
  • 0粉丝

高中生

92%

还不是VIP/贵宾

-

威望
0
论坛币
16 个
通用积分
0.0797
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
773 点
帖子
31
精华
0
在线时间
30 小时
注册时间
2015-11-23
最后登录
2021-11-20

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
data example_q1;
infile datalines dlm=',';
input Account_ID Revenue Segment $ N_var1 C_var1 $ TRN_DT $10. TRN_LOC $ TRN_CDE $ TRN_AMT @;
datalines;
10001,5,G1,., ,2014-10-23,CHINA,APP_001,100
10002,6,G1,., ,2014-10-23, ,APP_002,110
10003,.,G1,., ,2014-10-23,CHINA,APP_003,50
10004,10,G2,., ,2014-10-23,CHINA,APP_004,90
10005,15,G2,., ,2014-10-23,CHINA,CAN_005,12
10006,13,G2,., ,2014-10-23,CHINA,MAN_006,10000
10007,.,G2,., ,2014-10-23,CHINA,APP_007,10
10008,20,G3,., ,2014-10-23,CHINA,APP_008,100
10009,25,G3,., ,2014-10-23,CHINA,APP_009,200
10010,.,G3,., ,2014-10-23, ,REJ_010,100000
10010,.,G3,., ,2014-10-23, ,REJ_010,100000
10010,.,G4,., ,2014-10-23, ,REJ_010,100000
10010,.,G5,., ,2014-10-23, ,REJ_010,100000
10003,7,G1,., ,2014-10-24,CHINA,MAN_003,50000
10004,9,G2,., ,2014-10-24,CHINA,APP_004,90
10006,6,G2,., ,2014-10-24,CHINA,MAN_006,1000
10007,.,G2,., ,2014-10-24,CHINA,APP_007,10
10008,8,G3,., ,2014-10-24,CHINA,APP_008,100
10009,9,G3,., ,2014-10-24,CHINA,APP_009,200
10010,.,G3,., ,2014-10-24,CHINA,APP_010,100
10010,10,G4,., ,2014-10-24,CHINA,APP_011,101
10010,20,G5,., ,2014-10-24,CHINA,APP_012,102
;
run;

如上数据集如何运用宏将全部为空值的变量删除?

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:sas数据集 数据集 segment Account Revenue 如何

热爱生活,感悟生活!
沙发
liehuodgq 发表于 2015-12-31 12:33:59 |只看作者 |坛友微信交流群

data aa;
  input x $32.;
  cards;
  run;

%macro drop_nvar();
proc sql noprint;
select max(varnum) into :varno
       from sashelp.vcolumn
            where libname='WORK' AND MEMNAME='EXAMPLE_Q1' and memtype='DATA';
quit;
%PUT &VARNO;

%do i=1 %to &varno;
  proc sql noprint;
      select name into :varna
             from sashelp.vcolumn
                  where libname='WORK' AND MEMNAME='EXAMPLE_Q1' and memtype='DATA' AND varnum=&i;   
  quit;
  %put &varna;

  data EXAMPLE_Q1;
     set example_q1;
     null1=ifn(&varna="",0,1);
  run;

  proc sql noprint;
  select avg(null1) into :avg_var
         from example_q1
  ;quit;
  %put &avg_var;

  data a;
     set example_q1;
     length x $32.;
     if &avg_var=0 then x=compress("&varna");
     else x="";
  run;

  data a;
    set a;
    keep x;
  run;

  proc append base=aa data=a force;
  run;

%end;
  proc sql noprint;
  select distinct compress(x) into :xx separated by ' '
        from aa
  ;quit;
  %put &xx;

  data example_q1;
    set example_q1;
    drop null1 &xx;
  run;
%mend;

%drop_nvar;
热爱生活,感悟生活!

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加JingGuanBbs
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 04:12