SAS中文论坛

标题: 跟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>
&nbsp;&nbsp;&nbsp;  if q003=1 then do;<br>
&nbsp;&nbsp;&nbsp;  if p(1)=1 or p(1)=2 then a=1;<br>
&nbsp;&nbsp;&nbsp;  else if p(1)=3 then a=2;<br>
else a=3;<br>
end;<br>
&nbsp;&nbsp;&nbsp;  else do j=1 to q003-1;<br>
&nbsp;&nbsp;&nbsp;&nbsp;  k=j+1;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  if p(j)=p(k)=1 or p(j)=p(j)=2 then do ;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  a=1;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  k+1;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  end;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  else if  p(j)=p(k)=3 then do ;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  a=2;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  k+1;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  end;<br>
&nbsp;&nbsp;&nbsp;  else if p(j) ne p(k) then do;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  a=3;<br>
&nbsp;&nbsp;&nbsp;  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>
               
                <br/><b>类别:</b><a href="http://hi.baidu.com/crack%5Fman/blog/category/%B8%FAcrackman%B6%C1sas%B3%CC%D0%F2">跟crackman读sas程序</a>&nbsp;<a href="http://hi.baidu.com/crack%5Fman/blog/item/117cdd3b48319fd27c1e71ca.html#comment">查看评论</a>




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2