标题: 跟crackman读SAS程序(94)--动态处理需要设置条件的数据列项 [打印本页] 作者: shiyiming 时间: 2010-11-10 11:57 标题: 跟crackman读SAS程序(94)--动态处理需要设置条件的数据列项 From crackman's blog on Baidu
<p><font size="4">有一系列类似q0001_01,q0001_02.....q0001_10 的变量,如何根据一个变量q003的值来确定前面要处理的变量呢?<br>
比如 q003=2 我只要处理q0001_01和q0001_02,q003=3 处理q0001_01 q0001_02 q0001_03。</font></p>
<p><font size="4">如 q0001_01 和 q0001_02 都取 1 和 2 生成一个变量a=1 q0001_01 和 q0001_02 都取 3 a=2 <br>
</font></p>
<p><font size="4">data crackman;<br>
input q0001_01 q0001_02 q0001_03 q0001_04 q003;<br>
array p q0001_01-q0001_04 q003;<br>
if q003=1 then do;<br>
if p(1)=1 or p(1)=2 then a=1;<br>
else if p(1)=3 then a=2;<br>
else a=3;<br>
end;<br>
else do j=1 to q003-1;<br>
k=j+1;<br>
if p(j)=p(k)=1 or p(j)=p(j)=2 then do ;<br>
a=1;<br>
k+1;<br>
end;<br>
else if p(j)=p(k)=3 then do ;<br>
a=2;<br>
k+1;<br>
end;<br>
else if p(j) ne p(k) then do;<br>
a=3;<br>
end;<br>
end;<br>
drop k j;<br>
datalines;<br>
1 1 1 1 1<br>
1 1 2 1 3<br>
3 3 1 2 2<br>
2 2 2 2 4<br>
1 1 1 1 4<br>
;<br>
run;<br>
proc print data=crackman;<br>
run;</font></p>
<p> </p> <a href="http://hi.baidu.com/crack%5Fman/blog/item/117cdd3b48319fd27c1e71ca.html">阅读全文</a>