楼主: 蓝娃
1988 4

SAS INPUT一段程序,为什么执行到@@不再继续往下读了? [推广有奖]

  • 1关注
  • 0粉丝

初中生

19%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
384 点
帖子
8
精华
0
在线时间
14 小时
注册时间
2011-11-8
最后登录
2016-3-18

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
下面这段程序:
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  .  

二维码

扫码加我 拉你入群

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

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

关键词:Input put infile cards print 程序 SAS input

已有 1 人评分经验 收起 理由
reduce_fat + 66 鼓励积极发帖讨论

总评分: 经验 + 66   查看全部评分

沙发
xuyaohua 发表于 2015-4-21 05:41:22 |只看作者 |坛友微信交流群
这个问题我不知道答案
[黑暗中我跟你走,就别在有光的时

使用道具

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

使用道具

板凳
382220827 发表于 2015-4-21 19:14:08 |只看作者 |坛友微信交流群
不错,一个简单的例子就道出了@与@@的区别,并深究了input成功的客观条件,赞
对于楼主的问题,如果有更权威的解释就更好了。先标记一下

使用道具

报纸
blliufan 发表于 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不换行

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 01:47