全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1498 3
2017-08-31
SAS小书上的例子,原例子为
data test;
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
;
run;
这时TEST中数据如下 微信截图_20170831111806.png
这个大家都懂,但是当我修改程序变成
data test;
infile cards;
input x@ y z@@;
cards;
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17
;
run;
时,再运行sas直接卡死,然后我终止运行发现TEST里面有上千万OBS,如下图 微信截图_20170831112020.png
有没有好心的朋友解释一下呢?
二维码

扫码加我 拉你入群

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

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

全部回复
2017-8-31 11:23:36
保存一下
二维码

扫码加我 拉你入群

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

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

2017-8-31 15:16:06
input x@ y z@@;
第一次循环:
默认从“1 2 3 4 5 6”的第1列开始读,得到x=1;
y前面的@是列指针,但是没有指定读哪一列,所以y=.;
重新从第1列开始读,所以z=1,这样就形成了第1个观测;
第二次循环:
@@要求SAS接着读取第1行数据以形成第2条观测,上一次循环读到了第1列,接着从第2列开始读,得到x=2;y前面的@没有指定读哪一列,所以y=.;
重新从第1列开始读,所以z=1,这样就形成了第2个观测;
之后就进入无限循环!






二维码

扫码加我 拉你入群

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

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

2017-9-1 09:20:47
l1i2n3i4n5g 发表于 2017-8-31 15:16
input x@ y z@@;
第一次循环:
默认从“1 2 3 4 5 6”的第1列开始读,得到x=1;
多谢大神帮助!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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