SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 778|回复: 4
打印 上一主题 下一主题

运行select语句遇到一个很奇怪的问题,高手帮忙解答一下

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2010-5-6 20:11:54 | 只看该作者

运行select语句遇到一个很奇怪的问题,高手帮忙解答一下

data a;
input x @@;
cards;
0 2 3
;
run;

data b1;
set a;
select(x);
when (x=0) y=1;
when (x=2) y=2;
otherwise;
end;
run;

本以为输出的数据集b1第二条观测中y=2,但是结果却是y=缺失值。请高手帮忙解释一下!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2010-5-6 20:28:20 | 只看该作者

Re: 运行select语句遇到一个很奇怪的问题,高手帮忙解答一下

[code:3vvarjdj]select(x);
        when (0) y=1;
        when (2) y=2;
end;
/*or*/
select;
        when (x=0) y=1;
        when (x=2) y=2;
end;[/code:3vvarjdj]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2010-5-6 21:12:44 | 只看该作者

Re: 运行select语句遇到一个很奇怪的问题,高手帮忙解答一下

谢谢,不过我知道你写的两种方法是正确的,问题是我的程序中,为什么第二行输出的y值是缺失值?因为我的程序日志并没有报错。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2010-5-6 21:20:24 | 只看该作者

Re: 运行select语句遇到一个很奇怪的问题,高手帮忙解答一下

to today2009
in your syntax, you are doing like that
condition x= (x=0)?, same as x = 1 because 0 =0.  no, so go to next when
condition x = (x =2)?, same as x = 0 because 0 ^= 2. yes, so get y = 2
....
because for satisfying the condition, your x has to be 0 or 1, so you got the missing value for x = 2 or 3.
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2010-5-6 21:28:40 | 只看该作者

Re: 运行select语句遇到一个很奇怪的问题,高手帮忙解答一下

是的,多谢!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-4 06:43 , Processed in 0.067091 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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