作业帮 > 综合 > 作业

请问关于缺失值的处理,如何用SAS的宏语言进行处理啊?

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 19:27:27
请问关于缺失值的处理,如何用SAS的宏语言进行处理啊?
data missing;
input n1 n2 n3 n4 n5 n6 n7 n8 c1$ c2$ c3$c4$;
datalines;
1 .1 .1 .1 4 a .c .
1 1 ..2 ..5 e .g h
1 .1 .3 ..6 ..k l
1 .......a b c d
;
%let thres=0.7;
data_null_;
set missing end=finished nobs=obs;
array num_vars{8} n1-n8;
array char_vars{4} c1-c4;
array num_miss [8] (8*0);
array char_miss [4] (4*0);
length list $ 50;
do i=1to8;
if num_vars(i) eq .then num_miss(i)+1;
end;
do i=1to4;
if char_vars(i) eq ''then char_miss(i)+1;
end;
if finished thendo;
do i= 1to8;
if num_miss(i)/obs ge&thres then list=trim(list)||' '||trim(vname(num_vars(i)));
end;
do i= 1to4;
if char_miss(i)/obs ge&thres then list=trim(list)||' '||trim(vname(char_vars(i)));
end;
call symputx('mlist',list);
end;
run;
%put &mlist;
data notmiss;
set missing(drop=&mlist);
run;
这是用宏语言处理之前的程序,如何编写成宏程序呢?感激不尽~
删除缺失值过多的变量?不是写好了吗?
想写怎么样的宏?达到什么样的目的?
再问: 这个问题已经被老师解决了哈~我还想问下在SAS中怎么用宏语言来编写替换字符型缺失值的程序呢?对于字符型缺失值得替换,是用众数来替换吗?数值性缺失值得替换用proc univariable 语句可以解决,但是字符型的好像不能额!!真的非常感激不尽~~
再答: 不管数值格式还是字符的都可以DATA步,数组来解决呀,至于用什么解决,取决于你项目的需求,有的时候还可以不替换的。