全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
7028 6
2012-07-04
悬赏 3 个论坛币 未解决
sas菜鸟有题求助:

我想做个数据检测编程
data missing;
input id $ x1 x2 x3 x4;
datalines;
1001 4 0 7 9
1002 . . 1 10
1003 . 2 . .
1004 2 9 . 0
1005 0 1 4 9
;
data failure(keep=id failure val1 val2);
set missing;
if x1<3 & x2<3 then do;
failure=1000;
val1=x1;
val2=x2;
output;
end;
run;

可是显示结果总是把缺失值给检测出来(可能由于缺失值本身是小于零的),比如 id 1002、1003 也符合if 的条件,可是含缺失值的id对我来说没有意义。我想要的是如果x1、x2 的任意一方为缺失值,则不参加运算。请各位高手指教!(另,将缺失值设置为0或者其他数值有很大风险)谢谢各位!
二维码

扫码加我 拉你入群

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

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

全部回复
2012-7-4 09:31:05
加个不等于缺失值的条件 if x1 ne .
二维码

扫码加我 拉你入群

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

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

2012-7-4 10:31:02
shaker 发表于 2012-7-4 09:31
加个不等于缺失值的条件 if x1 ne .
谢谢您的回复!这样的处理可以解决简单的数据库与数量不多的检测。可问题是我的数据库很大,而且有两千多个检测(if 语句),难道我要将每个if语句中涉及的变量都添加 ne . 么?
二维码

扫码加我 拉你入群

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

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

2012-7-4 11:18:18
你的后面变量如果都是x1,x2,x3...形式的话,可以用array,做一个循环就行了,如果不是这样有规律的形式也可以做成宏变量,同样用do循环
二维码

扫码加我 拉你入群

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

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

2012-7-5 11:52:01
顶楼上的,可以用array x1-x20之类的,具体可参照以下链接
http://www.cpc.unc.edu/research/ ... s/sastopics/arrays/
二维码

扫码加我 拉你入群

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

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

2012-7-6 01:40:28
按楼主的方法先做出来,结果再删除有缺失值的记录;
if  nmiss(of _numeric_)>0  then delete;/*这里是删除数值变量中有缺失值的记录,也可以修改成计指定变量的缺失值个数,nmiss(var1,var2,var3....)*/
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群