SAS中文论坛

标题: 跟crackman读SAS程序(89)--数据集中插入空行 [打印本页]

作者: shiyiming    时间: 2010-11-3 20:41
标题: 跟crackman读SAS程序(89)--数据集中插入空行
From crackman's blog on Baidu


               
                <p>data raw;<br>
&nbsp;&nbsp;&nbsp;  input a b c;<br>
datalines;<br>
4 4 1<br>
2 3 1<br>
3 6 2<br>
4 5 2<br>
5 5 3<br>
4 7 3<br>
;<br>
data out;<br>
&nbsp;&nbsp;&nbsp;  <strong><font color="#ff0000">do _n_=1 by 1 until(last.c);<br>
</font></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  set raw end=last;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  <font color="#ff0000"><strong>by c notsorted;<br>
</strong></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  output;<br>
&nbsp;&nbsp;&nbsp;  end;<br>
&nbsp;&nbsp;&nbsp;  call missing(of _all_);<br>
&nbsp;&nbsp;&nbsp;  if not last then output;<br>
run;<br>
proc print;<br>
run;</p>
<p>此程序:</p>
<p><font size="3">1.这个程序来自:<a href="http://www.mysas.net/forum/viewtopic.php?f=4&amp;t=6930&amp;sid=6348c1437cdb0b8d47b3561a00877ca7"><!-- l --><a class="postlink-local" href="http://www.mysas.net/forum/viewtopic.php?f=4&amp;t=6930">viewtopic.php?f=4&amp;t=6930</a><!-- l --></a></font></p>
<p><font size="3">2.此程序非常干练,分组循环遍历观测对象值,建立一个指示结束变量,这里的by语句用的很巧,notsorted,不改变原始数据的排序,省去了一个proc sort过程,就是分组但不排序。每一个分组循环结束也就是last.c=1 true的时候执行后面的语句,也就是插入空行。</font></p> <a href="http://hi.baidu.com/crack%5Fman/blog/item/0ae57b8f4d2c4e1dc9fc7a20.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/0ae57b8f4d2c4e1dc9fc7a20.html#comment">查看评论</a>




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