楼主: dandan_9075
4850 13

缺失值替代 [推广有奖]

11
木子星 发表于 2012-3-28 12:43:03
dandan_9075 发表于 2012-3-28 11:53
多谢 高手如云啊
客气  我菜鸟一只

12
dandan_9075 在职认证  发表于 2012-3-29 21:34:38
木子星 发表于 2012-3-27 22:27
楼主  30个变量全是数值型的?
我写了一个
不知道你能用不?  缺失为点的变量是数值型对待的
没接触过宏,这两天恶补了下以上程序少了个%,应该为
%macro trans(i);
data oringal;
set oringal;*原始数据集;
if var&i eq . then var&i=0;
else if var&i=' ' then var&i='0';
run;
%mend trans;
%macro main;
%let j=1;
%do i=1 %to 30;
  %trans(&j);
  %let j=%eval(&j+1);
%end;
%mend main;
%main;
多谢哈

13
weberxu 发表于 2013-4-9 10:17:26
上边的代码都太复杂了,有非常简单的为什么不用呢?
                data b;
                set a;
                array char _character_;
                array numr _numeric_;
                do over char;
                if char eq "" then char="0";
                end;
                do over numr;
                if numr eq . then numr=0;
                if numr<0 then numr=0;
                end;
                run;

14
chaosxiao 发表于 2013-4-11 11:31:58
var_name=var_name*1;/*变字符变量为数值型*/
if var_name=. then var_name=0;

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 15:00