SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 895|回复: 6
打印 上一主题 下一主题

【新手求助】SAS数据集查缺失

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-9-7 14:05:49 | 只看该作者

【新手求助】SAS数据集查缺失

数据集里数据比较多,怎样才能查表里的数据哪个缺失呢
比如 x y  z
       1  2 3
       4  . 6
       7  8 .
这种情况显示变量y 第二行有缺失 变量z 第三行缺失
谢谢指点~
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2011-9-7 15:00:50 | 只看该作者

Re: 【新手求助】SAS数据集查缺失

data yuyu;
   input x y z ;
   cards;
   1 2 3
   4 . 6
   7 8 .
   . . 0
   2 3 5
   ;
run;
title "Listing of missing data id";
%macro id(para=);
data _null_;
   set yuyu;
   if missing(&para) then put  "Missing record is number " _n_;
run;
%mend;
%id(para=y);
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2011-9-7 17:10:07 | 只看该作者

Re: 【新手求助】SAS数据集查缺失

[quote="yugao1986":3fzinckx]data yuyu;
   input x y z ;
   cards;
   1 2 3
   4 . 6
   7 8 .
   . . 0
   2 3 5
   ;
run;
title "Listing of missing data id";
%macro id(para=);
data _null_;
   set yuyu;
   if missing(&para) then put  "Missing record is number " _n_;
run;
%mend;
%id(para=y);[/quote:3fzinckx]
先谢谢指点,o(∩_∩)o  
这种情况只检查了y那一列的 如果一张表里变量和观测都很多呢?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2011-9-8 21:33:31 | 只看该作者

Re: 【新手求助】SAS数据集查缺失

如果你用sas9.3.如果你知道如何使用proc calis。其中含有一个较好的对数字型变量缺失的总结。京剧
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2011-9-9 09:49:02 | 只看该作者

Re: 【新手求助】SAS数据集查缺失

[quote="jingju11":3r7rn6ad]如果你用sas9.3.如果你知道如何使用proc calis。其中含有一个较好的对数字型变量缺失的总结。京剧[/quote:3r7rn6ad]
(┬_┬)  如果不成立 现在对SAS还只是入了个门 之前没有接触过
还是谢谢高人指点 ~
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2011-9-11 09:52:45 | 只看该作者

Re: 【新手求助】SAS数据集查缺失

[code:25nwmx9r]
data _null_;
        length msg $100;
        dsid=open('a');
        nobs=attrn(dsid,'nobs');
        nvar=attrn(dsid,'nvars');
        do i=1 to nobs;
                rc=fetchobs(dsid,i);
                do j=1 to nvar;
                        if vartype(dsid,j)='N' then do;
                                if missing(getvarn(dsid,j)) then  do;msg='第'||i||'行,变量'||varname(dsid,j)||'缺失';put msg;end;
                        end;
                        else if vartype(dsid,j)='C' then do;
                                if missing(getvarc(dsid,j)) then  do;msg='第'||i||'行,变量'||varname(dsid,j)||'缺失';put msg;end;
                        end;
                end;
        end;
        rc=close(dsid);
run;

[/code:25nwmx9r]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2011-9-13 09:23:45 | 只看该作者

Re: 【新手求助】SAS数据集查缺失

[quote="byes":33kzenil][code:33kzenil]
data _null_;
        length msg $100;
        dsid=open('a');
        nobs=attrn(dsid,'nobs');
        nvar=attrn(dsid,'nvars');
        do i=1 to nobs;
                rc=fetchobs(dsid,i);
                do j=1 to nvar;
                        if vartype(dsid,j)='N' then do;
                                if missing(getvarn(dsid,j)) then  do;msg='第'||i||'行,变量'||varname(dsid,j)||'缺失';put msg;end;
                        end;
                        else if vartype(dsid,j)='C' then do;
                                if missing(getvarc(dsid,j)) then  do;msg='第'||i||'行,变量'||varname(dsid,j)||'缺失';put msg;end;
                        end;
                end;
        end;
        rc=close(dsid);
run;

[/code:33kzenil][/quote:33kzenil]
~>_<~+  谢谢~ 你们太强大了 我表示压力很大
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-7 20:35 , Processed in 0.070207 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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