<p>5楼的code基本能解决我的问题,谢谢各位的帮助。测试过程中发现使用infile语句操作的一个问题,通过几个简单程序说明如下:</p><p><font color="#f73809">示例代码1:</font></p><p>data temp1 ;</p><p>infile cards dlm = ',' ;</p><p><font color="#2b4dd5">/***************************************************************************************************************************************************************</font></p><p><font color="#2b4dd5">first和second的采用默认的8位字符长度,因此取值超过8位的被截取,不能得到想要的结果.</font></p><p><font color="#2b4dd5">注:分隔符在生成变量观测是起到了一定的作用。</font></p><p><font color="#2b4dd5">**************************************************************************************************************************************************************/</font></p><p>input first $ second $ ;</p><p>cards ;</p><p>12345678,1234567890</p><p>123456789,1234567890</p><p>;</p><p>run ;</p><p><br/><font color="#f70909">示例代码2:</font></p><p>data temp2;</p><p>infile cards dlm = ',' ;</p><p><font color="#1111ee">/********************************************************************************************************************************************</font></p><p><font color="#1111ee">first和second变量设置为其所有可能取值中的最长取值的长度,生成的观测存在问题,感觉分隔符“,”被忽略了;</font></p><p><font color="#1111ee">*******************************************************************************************************************************************/</font></p><p>input first $9. second $10. ;</p><p>cards ;</p><p>12345678,1234567890</p><p>123456789,1234567890</p><p>;</p><p>run ;</p><p><font color="#ff0000">示例代码3:</font></p><p>data temp3;</p><p>infile cards dlm = ',' ;</p><p><font color="#1111ee">/************************************************************************************************************************************************************</font></p><p><font color="#1111ee">显示设置first和second变量的长度且均设置为系统默认的长度8,变量所有的可能取值长度都是8,此时生成的观测仍然存在问题</font></p><p><font color="#1111ee">************************************************************************************************************************************************************/</font></p><p>input first $8. second $8. ;</p><p>cards ;</p><p>12345678,12345678</p><p>12345678,12345678</p><p>;</p><p>run ;</p><p><font color="#ff0000">示例代码4:</font></p><p>data temp4;</p><p>infile cards ;</p><p><font color="#1111ee">/************************************************************************************************************************************************************</font></p><p><font color="#1111ee">显示设置first和second变量的长度且均设置为系统默认的长度8,变量所有的可能取值长度都是8,且去掉dlm选项设置,此时生</font></p><p><font color="#1111ee">成的观测仍然存在问题</font></p><p><font color="#1111ee">************************************************************************************************************************************************************/</font></p><p>input first $8. second $8. ;</p><p>cards ;</p><p>12345678,12345678</p><p>12345678,12345678</p><p>;</p><p>run ;</p><p>从以上示例来看,如果显示设置了变量的长度,则sas系统忽略分隔符,但是以上的四种方式也不能得到预期的结果。那位大侠能介绍下infile语句的使用细则吗?或者是否能够提供相关说明的详细资料?谢谢了先!!!</p>
|