SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 743|回复: 0
打印 上一主题 下一主题

替换数据集中所有缺失值的macro

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2008-2-1 16:56:53 | 只看该作者

替换数据集中所有缺失值的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);
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-4 12:15 , Processed in 0.074317 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表