楼主: jsuper1261
4880 4

[原创博文] input语句后面的行固定标识符@和@@有啥区别 [推广有奖]

  • 0关注
  • 0粉丝

本科生

94%

还不是VIP/贵宾

-

威望
0
论坛币
40 个
通用积分
0
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
3265 点
帖子
83
精华
0
在线时间
108 小时
注册时间
2012-8-20
最后登录
2021-1-6

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
能简单举个例子吗?
thx~
二维码

扫码加我 拉你入群

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

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

关键词:put语句 Input put

回帖推荐

Imasasor 发表于4楼  查看完整内容

简单来说,有时要根据某个变量的值来决定如何读取其它变量,这时需要多个input语句读入不同的变量,通常,sas在完成一个input语句时,数据指针自动跳到下一行,如上述第二个例子input x y完成后,指针跳到下一行,所以input z的时候读入34。加上@就可以让指针读完一个input语句时,指针不跳到下一行,所以例一中z的值为5. @的@@的区别在于, @在一个input语句中,保持指针在此行,但当遇到一个不加@input的语句,或者进入到data步的 ...

Imasasor 发表于3楼  查看完整内容

随便举个例子,慢慢体会吧,体会半天就理解了,光说也没用
沙发
davil2000 发表于 2012-9-6 13:29:21 |只看作者 |坛友微信交流群
INPUT语句最后的@符号表示换行读取观测值;最后的@@符号则表示不换行读取。
R是万能的,SAS是不可战胜的!

使用道具

藤椅
Imasasor 发表于 2012-9-6 13:33:05 |只看作者 |坛友微信交流群
随便举个例子,慢慢体会吧,体会半天就理解了,光说也没用
  1. data a;
  2. input x y @;
  3. input z;
  4. cards;
  5. 1 3 5 6
  6. 34
  7. 5 6
  8. ;
  9. proc print;
  10. run;

  11. data a;
  12. input x y;
  13. input z;
  14. cards;
  15. 1 3 5 6
  16. 34
  17. 5 6
  18. ;
  19. proc print;
  20. run;

  21. data b;
  22. input x y @@;
  23. cards;
  24. 1 3 5 6
  25. 34
  26. 5 6
  27. ;
  28. proc print; run;
复制代码
已有 1 人评分经验 收起 理由
guo.bailing + 100 精彩帖子

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

欢迎加入亚太地区第一R&Python数据挖掘群: 251548215;

使用道具

板凳
Imasasor 发表于 2012-9-6 13:39:49 |只看作者 |坛友微信交流群
简单来说,有时要根据某个变量的值来决定如何读取其它变量,这时需要多个input语句读入不同的变量,通常,sas在完成一个input语句时,数据指针自动跳到下一行,如上述第二个例子input x y完成后,指针跳到下一行,所以input z的时候读入34。加上@就可以让指针读完一个input语句时,指针不跳到下一行,所以例一中z的值为5.
@的@@的区别在于, @在一个input语句中,保持指针在此行,但当遇到一个不加@input的语句,或者进入到data步的下一个循环(即第一个观测所有变量赋值完成),指针仍会跳到下一行。如例一中,input z完成后,本循环结束,进入下一个循环,指针跳到下一行了。而@@即便是进入到data步的下一个循环,也不会将指针跳到下一行,除非本行所有数据读完,才会跳指针。结合我的例子,慢慢消化吧
已有 2 人评分经验 论坛币 收起 理由
guo.bailing + 100 精彩帖子
数据分析师3K + 20 补偿

总评分: 经验 + 100  论坛币 + 20   查看全部评分

欢迎加入亚太地区第一R&Python数据挖掘群: 251548215;

使用道具

报纸
wtxhpx1991 在职认证  发表于 2012-9-6 13:46:34 |只看作者 |坛友微信交流群
其实建议楼主先把sas中data步的执行过程弄清楚。就像楼上说的那样,@是在当前data步里固定指针,该data步执行完之后指针移到下一行。而@@是在当前data步里固定指针,即使该data步执行完了指针依然在这一行,除非这一行数据全部读完了,指针才调到下一行
已有 2 人评分经验 论坛币 收起 理由
guo.bailing + 100 精彩帖子
数据分析师3K + 20 补偿

总评分: 经验 + 100  论坛币 + 20   查看全部评分

使用道具

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

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

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

GMT+8, 2024-5-2 03:08