SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

12
返回列表 发新帖
楼主: shiyiming
打印 上一主题 下一主题

请教:如何删除SAS数据集的空记录?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
11#
 楼主| 发表于 2009-8-4 17:18:39 | 只看该作者

Re: 请教:如何删除SAS数据集的空记录?

凑热闹,就是不知道变量多的时候函数的效率如何.
[code:15shshhg]data temp(drop=i);
        set sashelp.class end=last;
        output;
        if last then do;
                call missing(of _all_);
                do i=1 to 10;
                        output;
                end;
        end;
run;

data temp2;
        set temp;
        if n(of _numeric_)=0 and cats(of _character_)=' ' then delete;
run;[/code:15shshhg]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
12#
 楼主| 发表于 2009-8-5 10:58:51 | 只看该作者

Re: 请教:如何删除SAS数据集的空记录?

楼主是我同事,这问题引来这么多高手回答。
首先这种情况很少发生,一般数据中都有关键词,只需要判断关键词是否为非空就可以。
DATA A;
INPUT A B C$;
CARDS;
1 3 5
. . C
3 .  .
. . .
;
RUN;
DATA M;
SET A;
_DID=OPEN("A");
_DNVAR=ATTRN(_DID,"NVARS");
DROP _:;
IF CMISS(OF _ALL_) NE _DNVAR;
RUN;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
13#
 楼主| 发表于 2009-8-5 16:47:36 | 只看该作者

Re: 请教:如何删除SAS数据集的空记录?

谢谢4772814,还真没留意到这个9.2的新函数.
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
14#
 楼主| 发表于 2009-8-6 15:54:20 | 只看该作者

Re: 请教:如何删除SAS数据集的空记录?

to 4772814

原来在这儿给答案了,谢了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-5 21:34 , Processed in 0.071635 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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