立即打开
更多原创文章请看:http://crackman.net/
有一系列类似q0001_01,q0001_02…..q0001_10 的变量,如何根据一个变量q003的值来确定前面要处理的变量呢?
比如 q003=2 我只要处理q0001_01和q0001_02,q003=3 处理q0001_01 q0001_02 q0001_03。
如 q0001_01 和 q0001_02 都取 1 和 2 生成一个变量a=1 q0001_01 和 q0001_02 都取 3 a=2
data crackman;
input q0001_01 q0001_02 q0001_03 q0001_04 q003;
array p q0001_01-q0001_04 q003;
if q003=1 then do;
if p(1)=1 or p(1)=2 then a=1;
else if p(1)=3 then a=2;
else a=3;
end;
else do j=1 to q003-1;
k=j+1;
if p(j)=p(k)=1 or p(j)=p(k)=2 then do ;
a=1;
k+1;
end;
else if p(j)=p(k)=3 then do ;
a=2;
k+1;
end;
else if p(j) ne p(k) then do;
a=3;
end;
end;
drop k j;
datalines;
1 1 1 1 1
1 1 2 1 3
3 3 1 2 2
2 2 2 2 4
1 1 1 1 4
;
run;
proc print data=crackman;
run;
HOPEWELL:
data crackman;
input q0001_01 q0001_02 q0001_03 q0001_04 q003;
array p{*} q0001_01-q0001_04;
select(substr(cats(of p{*}),1,q003));
when(repeat(’1′,q003-1)) a=1;
when(repeat(’2′,q003-1)) a=1;
when(repeat(’3′,q003-1)) a=2;
otherwise a=3;
end;
datalines;
1 1 1 1 1
1 1 2 1 3
3 3 1 2 2
2 2 2 2 4
1 1 1 1 4
;
proc print data=crackman;
run;

扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
全部回复
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
相关推荐
栏目导航
热门文章
推荐文章
扫码加好友,拉您进群