SAS中文论坛

标题: 替换数据集中所有缺失值的macro [打印本页]

作者: shiyiming    时间: 2008-2-1 16:56
标题: 替换数据集中所有缺失值的macro
%macro replacemissing(data = , out = , missingvalue = );
        data &out;
           set &data;
           array arraynum{*} _numeric_;
           do i = 1 to dim(arraynum);
             if arraynum{i} = . then arraynum{i} = &missingvalue;
           end;
           array arraychar{*} _character_;
           do i = 1 to dim(arraychar);
             if arraychar{i} = ' ' then arraychar{i} = "&missingvalue";
           end;
        run;
%mend replacemissing;

data a;
        do i = 1 to 3;
                x = i**2;
                y = substr('abc', i, 1);
                if i = 1 then x = .;
                if i = 2 then y = ' ';
                output;
        end;
run;

%replacemissing(data = a, out = b, missingvalue = 99);




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2