全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2299 4
2015-04-20
下面这段程序:
data abc;
infile cards;
input x @;
input y;
input z @@;
cards;
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17
;
proc print data=abc;
run;
输出结果是:
Obs x  y  z
1    1  2  7
2    8  9  13
为什么不是下面这样?
Obs x  y  z
1    1  2  7
2    8  9  13
3   14 15  .  

二维码

扫码加我 拉你入群

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

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

全部回复
2015-4-21 05:41:22
这个问题我不知道答案
二维码

扫码加我 拉你入群

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

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

2015-4-21 15:35:48
这个问题我大概弄清楚了。
SAS中list input读取方式最简单,但有项要求是缺失值必须用句号“.”代替。所以我理解了为什么输出结果没有第3行的"."
至于14 15为什么读不出来,我自己测试了下,用SAS list input读取数据时必须是每个变量都有赋值,才能读出来这一行观测值,否则这一行观测值都会读不出来。
如果用column input 指定变量长度 或者列位置,就不会出现这种情况了。
二维码

扫码加我 拉你入群

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

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

2015-4-21 19:14:08
不错,一个简单的例子就道出了@与@@的区别,并深究了input成功的客观条件,赞
对于楼主的问题,如果有更权威的解释就更好了。先标记一下
二维码

扫码加我 拉你入群

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

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

2015-8-23 20:19:33
data abc;
infile cards;
input x @;
input y @;
input z @@;
cards;
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17
;
proc print data=abc;
run;
就可以了。

input y 后加上@,是的input z不换行
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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