SAS中文论坛
标题:
[求助]SAS里面如何删除含有缺失值的观测(变量很多)
[打印本页]
作者:
shiyiming
时间:
2008-12-25 10:47
标题:
[求助]SAS里面如何删除含有缺失值的观测(变量很多)
有一个SAS数据集,有50个变量,变量名是p1-p50,总共有6000多个观测,其中有部分观测里面有缺失数据,我想吧这些含缺失值的观测全部删除,有没有什么好方法?在where子句里面一个一个变量的判断是不是missing的实在太麻烦,也不够简洁,有没有更好的方法?直接在where里面判断一个观测是不是含有缺失值?或者用其他方法实现也行!
create table a
as select * from b
where p1 is not missing and p2 is not missing...
类似这样的代码可以实现,但是太繁琐,有没有更好的方法?
作者:
shiyiming
时间:
2008-12-25 12:38
标题:
Re: [求助]SAS里面如何删除含有缺失值的观测(变量很多)
datastep maby is easy!
作者:
shiyiming
时间:
2008-12-25 13:02
标题:
Re: [求助]SAS里面如何删除含有缺失值的观测(变量很多)
你的问题是解决方法有,但较麻烦,不简洁。
既然你的变量名是这么的有规律,那就写个循环来拼接个条件子句如: strWhere ="p1 is missing and p2 is missing...".应用时 Select * from 表 where &strWhere
具体代码省略
作者:
shiyiming
时间:
2008-12-25 18:41
标题:
Re: [求助]SAS里面如何删除含有缺失值的观测(变量很多)
[code:1oweozu5]data ex;
input p1-p50;
if ORDINAL(1,of p1-p50) ne .; output;
cards;
1 . 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
2 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
3 2 3 . 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
4 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
;
run;[/code:1oweozu5]
作者:
shiyiming
时间:
2008-12-25 19:27
标题:
Re: [求助]SAS里面如何删除含有缺失值的观测(变量很多)
another function can do it too !
作者:
shiyiming
时间:
2008-12-26 10:00
标题:
Re: [求助]SAS里面如何删除含有缺失值的观测(变量很多)
已经解决了,代码如下:
data a;
input x1 x2 x3;
cards;
1 . 3
. 2 6
5 5 9
;
run;
data b(drop=i);
set a;
array x _numeric_;
do i=1 to dim(x);
if x(i)=. then delete;
end;run;
作者:
shiyiming
时间:
2008-12-26 12:07
标题:
Re: [求助]SAS里面如何删除含有缺失值的观测(变量很多)
方法和你一样,但是代码还可以简化
作者:
shiyiming
时间:
2008-12-26 14:01
标题:
Re: [求助]SAS里面如何删除含有缺失值的观测(变量很多)
楼上的是如何简化的?
欢迎光临 SAS中文论坛 (https://mysas.net/forum/)
Powered by Discuz! X3.2