全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1983 4
2016-10-30
在看到论坛上一个帖子,https://bbs.pinggu.org/thread-4910871-1-1.html
一开始自己是用DATALINES测试的,但是发现DATALNES和INFILE读取数据的结果是不同的
比如数据如下
1
22
333
4444
55555


复制代码
用上面这段读取的时候,会因为record不够长,导致有数据缺失
结果如下图
1.JPG

但是用DATALINES读取的时候,结果就不一样了,竟然是完整的
请教一下,这到底是为什么呢,读取instream数据和外部数据有什么不同吗?
谢谢了
复制代码
2.JPG

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-10-31 20:54:46
求大神指点迷津
谢谢了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-11-2 03:42:01
这是两者的格式结构不同导致的。具体的讲就是,DATALINES的格式结构有固定的长度80bytes,无论你的数据是 1还是10000,其实后面都有空格填充到80。所以你的第2个数据集能够完整输入。
相反,infile文件的格式结构不是固定的,而是可变的,它总是和你的数据一样长。由于你x变量长度为5,比你的几个短数据长,导致必须串行读取数据以满足长度 5 。如果你取消x的长度5,或用其他长度试试,会帮你进一步了解。
另外,了解pad语句会有帮助。hope this helps。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-11-2 23:38:32
mich_ard 发表于 2016-11-2 03:42
这是两者的格式结构不同导致的。具体的讲就是,DATALINES的格式结构有固定的长度80bytes,无论你的数据是 1 ...
了解了,非常感谢
DATALINES相当于INFILE加上了PAD选项,是吧
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-11-3 00:45:14
是的。
找到一个SAS考题(可能是220的180题),与pad和infile有关:(原题见:http://jpsmonline.umd.edu/SASOnlineTutor/sot12/en/60476/m19/m19_33.htm )

Which raw data file requires the PAD option in the INFILE statement in order to correctly
read the data using either column input or formatted input?

112233.jpg

答案是 A,只有它数据不齐。




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群