SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 2010|回复: 3
打印 上一主题 下一主题

请教个BASE问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-1-30 18:44:12 | 只看该作者

请教个BASE问题

The contents of the raw data file are listed below:
----|----10----|----20----|----30
Ruth 39 11
Jose 32 22
Sue 30 33
John 40 44

The following SAS program is submitted:
data test;
infile 'employee';
input employee_name $ 1-4;
if employee_name='Sue' then input age 7-8;
else input idnum 10-11;
run;
Which one of the following values does the variable AGE contain when the name of the employee is 'Sue'?

答案: 40

请问为什么不是30?我觉得input employee_name $ 1-4; 后应该有个@才对,因此答案应是 ...(missing numeric value)
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2011-1-30 20:53:54 | 只看该作者

Re: 请教个BASE问题

"input employee_name $ 1-4;"之后转到了下一个观测行进行input,所以答案是40,这是结果中只有ruth和sue两个观测行。
如果是"input employee_name $ 1-4 @;",进行下一个input时则保持在同一观测行,这时结果输出4条观测,sue的age是30。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2012-3-11 13:08:14 | 只看该作者

Re: 请教个BASE问题

呵呵,这个解释不太听得懂啊???
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2012-3-11 14:30:29 | 只看该作者

Re: 请教个BASE问题

假设这是SAS代码:
data a;
input name $ 1-4 ;
if name='Sue' then input age 6-7 ;
else input id  9-10;
datalines;
Ruth 39 11
Jose 32 22
Sue  30 33
John 40 44
;
run;
首先读入Ruth作为name的值。由于name的值不是Sue,则从下一行输入id,其值22,也就是列输入的位置。此时,第一个观测读写完成。对于Sue,从下一行的指定列读入age,为40,id由于没有赋值则为缺失值。出现一个input,则会往下移动一行,故Jose那一行就只读了个id的值。所以最后的数据集只有两行,结果为,
name  age  id
Ruth   .       22
Sue     40     .
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-5-6 21:00 , Processed in 0.071498 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表