SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 3983|回复: 7
打印 上一主题 下一主题

[求助]SAS里面如何删除含有缺失值的观测(变量很多)

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2008-12-25 10:47:23 | 只看该作者

[求助]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...

类似这样的代码可以实现,但是太繁琐,有没有更好的方法?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2008-12-25 12:38:52 | 只看该作者

Re: [求助]SAS里面如何删除含有缺失值的观测(变量很多)

datastep maby is easy!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2008-12-25 13:02:42 | 只看该作者

Re: [求助]SAS里面如何删除含有缺失值的观测(变量很多)

你的问题是解决方法有,但较麻烦,不简洁。
既然你的变量名是这么的有规律,那就写个循环来拼接个条件子句如: strWhere ="p1 is missing and p2 is missing...".应用时 Select * from 表 where &strWhere
具体代码省略
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2008-12-25 18:41:00 | 只看该作者

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]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2008-12-25 19:27:17 | 只看该作者

Re: [求助]SAS里面如何删除含有缺失值的观测(变量很多)

another function can do it too !
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2008-12-26 10:00:10 | 只看该作者

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;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2008-12-26 12:07:18 | 只看该作者

Re: [求助]SAS里面如何删除含有缺失值的观测(变量很多)

方法和你一样,但是代码还可以简化
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
8#
 楼主| 发表于 2008-12-26 14:01:58 | 只看该作者

Re: [求助]SAS里面如何删除含有缺失值的观测(变量很多)

楼上的是如何简化的?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-5 07:08 , Processed in 0.404416 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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