全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
7987 12
2011-12-20
下面的程序,是我用来生成行业虚拟变量的。但是为啥,为啥生成的变量中取值是1和.(missing ),而不是0.请各位大侠帮忙查下哪里有问题。拜托啦~~
data a;input n r sic value date ddmmyy8.;
format date ddmmyy10.;
cards;
1  0.1  1   109 01-12-10
2  0.2  1   209 01-12-10
3  0.3  1   167 01-12-10
4  0.1  2   123 01-12-10
5  0.2  2   200 01-12-10
6  0.3  2   210 01-12-10
7  0.4  2   342 02-12-10
8  0.12 1   223 02-12-10
1  0.29 1   560 02-12-10
;
run;
proc sql noprint;
select distinct sic into: values separated by ' '
from a
where not missing(sic);
%let n=&sqlobs.;
quit;

%macro create_dumy;
data b;
set a;
select(sic);
%do i=1 %to &n.;
%let val = %scan(&values.,&i);
when( "&val.") dumy_&i =1;
%end;
otherwise put '0';
end;
run;

%mend;

%create_dumy
二维码

扫码加我 拉你入群

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

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

全部回复
2011-12-21 09:40:50
顶起啦~~
二维码

扫码加我 拉你入群

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

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

2011-12-21 09:49:42
otherwise put '0';

此句的动作尽在log里,没有给变量dummy_&i赋值
京剧
二维码

扫码加我 拉你入群

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

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

2011-12-21 10:41:10
jingju11 发表于 2011-12-21 09:49
此句的动作尽在log里,没有给变量dummy_&i赋值
京剧
哦,但是请指点怎么样修正啦,谢谢。
二维码

扫码加我 拉你入群

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

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

2011-12-21 11:09:30
jintianxiu 发表于 2011-12-21 10:41
哦,但是请指点怎么样修正啦,谢谢。
我不熟悉SQLOBS的用法,所以请你检查一下该值是否是你所希望的。
sic看起来是数字,为什么用“&VAL."?
改为otherwise dumy_&I =0; ---PUT '0' 无用处。
另外,英文有个单词叫dummy。。
京剧
二维码

扫码加我 拉你入群

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

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

2011-12-21 16:34:06
顶起啊
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群