全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1030 3
2015-02-28
我是想用DO循环来实现以下功能。要是fa1=1 and faf1=. 就输出,同理fa2=1 and faf2=. 也输出。直到fa6和faf6.

用以下语句,把i循环,然后变成宏,这样不行吗?新手,请指教以下如何实现?谢谢各位了

data a;
set mtm_hq;
array
do i=1 to 6;
call symput('i',i);
if fa&i=1 and faf&i=. then output;
if fb&i=1 and fbf&i=. then output;
if fc&i=1 and fcf&i=. then output;
output;
end;
run;

二维码

扫码加我 拉你入群

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

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

全部回复
2015-2-28 17:32:29
二维码

扫码加我 拉你入群

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

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

2015-3-1 23:54:31
这里不需要用宏。你的3个if相当于“或”的关系,只要满足一个,就输出,没错吧
data a;
set mtm_hg;
array m1[6] fa1-fa6;
array m2[6] faf1-faf6;
array m3[6] fb1-fb6;
array m4[6] fbf1-fbf6;
array m5[6] fc1-fc6;
array m6[6] fcf1-fcf6;
do i=1 to 6;
if m1[i]=1 and m2[i]=. then output;
if m3[i]=1 and m4[i]=. then output;
if m5[i]=1 and m6[i]=. then output;
end;
run;
二维码

扫码加我 拉你入群

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

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

2015-3-2 08:52:04
天穹下 发表于 2015-3-1 23:54
这里不需要用宏。你的3个if相当于“或”的关系,只要满足一个,就输出,没错吧
data a;
set mtm_hg;
原来是这样,学习了,谢谢!
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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