请选择 进入手机版 | 继续访问电脑版
楼主: xiaoai0405
15239 9

[问答] sas input @的用法 [推广有奖]

  • 0关注
  • 0粉丝

初中生

61%

还不是VIP/贵宾

-

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

xiaoai0405 发表于 2014-10-14 21:28:01 |显示全部楼层 |坛友微信交流群

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
data ;
  input type $ @;
  if type='c' then input course $ prof $;
  else if type='s' then input name $ id 3.2;
  cards;
  c math zxs
  s zhao 58888
  ;
  proc print;
  run;

有@的输出结果:
Obs    type    course    prof    name     id
   1      c       math     zxs                     .
   2      s                              zhao    5.88

无@的输出结果:
Obs    type    course    prof    name    id
    1      c        s         zhao                  .

请高手指点,有@能看的明白,但为什么没有@的结果想不明白~
二维码

扫码加我 拉你入群

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

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

关键词:Input put Course print cards course

回帖推荐

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

@的功能是input语句执行之后,指针不换行,如果没有@,则执行完input语句后,指针跳到下一行。 你的程序如果加上@,则input读完type后,指针停留在第一行,继续读"c"后边的数据,也就是math zxs 如果不加@,input读完第一行的type后,指针换到第二行,读入第二行的前两个字符串

lwien007 发表于5楼  查看完整内容

没有@,type变量第一次读入还是‘c',if语句正常执行,if type=’c'为真,读入变量couse prof,只不过指针跳到下一行开头,input couse prof是读入下一行的前两个字符串

pobel 发表于6楼  查看完整内容

IF语句和@是没有关系的。 不管第一个INPUT语句中有没有@,IF语句都会执行相同的功能,也就是判断type的值。 关于@以及@@的作用,可以参考下面这个帖子: https://bbs.pinggu.org/thread-1186051-3-1.html
艾东NO 发表于 2014-10-15 09:33:47 |显示全部楼层 |坛友微信交流群
相当好啊                                                                        
                                       
                                                     
                                                     
                                             
                                                                 
                                                                                 

使用道具

lwien007 发表于 2014-10-15 14:17:22 |显示全部楼层 |坛友微信交流群
@的功能是input语句执行之后,指针不换行,如果没有@,则执行完input语句后,指针跳到下一行。
你的程序如果加上@,则input读完type后,指针停留在第一行,继续读"c"后边的数据,也就是math zxs
如果不加@,input读完第一行的type后,指针换到第二行,读入第二行的前两个字符串

使用道具

xiaoai0405 发表于 2014-10-15 20:43:00 |显示全部楼层 |坛友微信交流群
lwien007 发表于 2014-10-15 14:17
@的功能是input语句执行之后,指针不换行,如果没有@,则执行完input语句后,指针跳到下一行。
你的程序如 ...
没有@的时候,if语句是怎么运行数据的?

使用道具

lwien007 发表于 2014-10-16 09:17:45 |显示全部楼层 |坛友微信交流群
没有@,type变量第一次读入还是‘c',if语句正常执行,if type=’c'为真,读入变量couse prof,只不过指针跳到下一行开头,input couse prof是读入下一行的前两个字符串

使用道具

pobel 在职认证  发表于 2014-10-16 09:39:14 |显示全部楼层 |坛友微信交流群
xiaoai0405 发表于 2014-10-15 20:43
没有@的时候,if语句是怎么运行数据的?
IF语句和@是没有关系的。
不管第一个INPUT语句中有没有@,IF语句都会执行相同的功能,也就是判断type的值。

关于@以及@@的作用,可以参考下面这个帖子:
https://bbs.pinggu.org/thread-1186051-3-1.html

使用道具

朱汉斌 发表于 2015-8-23 16:27:38 |显示全部楼层 |坛友微信交流群
1.没有@的情况下为啥输出结果的列变量中还有name和if?
2.   data d3;
    input type $ ;  if type='c'  then input course $ prof $ ;
    else if type='s' then
    input name $  id 3.2;
    cards;
   c math zxs
   s zhao 22233
   s zhb 25678
  ;
  proc print ;
  run;
SAS输出结果是:   Obs    type    course    prof    name    id

                              1       c         s         zhao                .
为啥不是: Obs    type    course    prof    name    id

                      1      c        s       zhao                  .
                      2      s                            zhb      2.56

???

使用道具

愚庸 发表于 2016-7-3 10:37:04 |显示全部楼层 |坛友微信交流群
朱汉斌 发表于 2015-8-23 16:27
1.没有@的情况下为啥输出结果的列变量中还有name和if?
2.   data d3;
    input type $ ;  if type='c'   ...
因此在判断type等于S时是根据第三行的s进行判断的,判断为真后要读入的数据为第四行的数据,而你输入的cards中只有一个行数据,因此输出中为空。

使用道具

smellycat1981 在职认证  发表于 2016-7-3 16:12:56 来自手机 |显示全部楼层 |坛友微信交流群
Hold the line

使用道具

marlline 发表于 2016-7-5 14:13:21 来自手机 |显示全部楼层 |坛友微信交流群
因為沒有@去hold the line 所以讀了第二行的數據

使用道具

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

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

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

GMT+8, 2024-3-29 07:21