楼主: lintorny
2385 2

[学习分享] 判断字符型变量的缺失值是否大于给定阀值 [推广有奖]

  • 2关注
  • 0粉丝

高中生

57%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
2 点
热心指数
2 点
信用等级
2 点
经验
238 点
帖子
19
精华
0
在线时间
37 小时
注册时间
2010-11-11
最后登录
2016-6-24

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
学sas中,写了个判断字符型变量的缺失值是否大于给定阀值的宏,分享一下。
data text1;
input x1 $ x2 $ y $;
cards;
. 2 a
. 3 b
6 7 .
3 4 c
9 8 e
. 24 .
8 . g
. 33 .
22 77 t
. 19 b
20 . u
21 16 o
;
run;

proc contents data=work.text1 out=tt;
run;
%macro varmiss(rate);
%if %sysfunc(exist(work.miss)) ne 0 %then %do;
proc datasets lib=work;
delete         miss;
quit;

data miss;
length var $10 percent flag 5;
stop;
run;
%end;
%let disd=%sysfunc(open(work.tt));
%if &disd gt 0 %then %do;
%let nobs=%sysfunc(attrn(&disd,nobs));
%do i =1 %to &nobs;
  %let rc=%sysfunc(fetchobs(&disd,&i));
  %let varnume=%sysfunc(varnum(&disd,name));
  %let variable=%sysfunc(getvarc(&disd,&varnume));
ods listing close;
ods output         OneWayFreqs=cc&i.;
proc freq data=text1 ;
tables &variable. /missing;
run;
ods output close;
ods listing;

data freq&i.(keep=&variable. percent flag rename=(&variable.=var));
set cc&i.;
if &variable eq "" then do ;
&variable.="&variable.";
if percent gt &rate. then flag=1;else flag=0;
output;
end;
run;

proc append base=miss data=freq&i. force;
run;
%end;
%let disd=%sysfunc(close(&disd));
%end;
%mend;
%varmiss(30);

二维码

扫码加我 拉你入群

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

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

关键词:字符型变量 字符型 缺失值 Variable datasets contents percent

已有 1 人评分学术水平 热心指数 信用等级 收起 理由
boe + 2 + 2 + 2 精彩帖子

总评分: 学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

本帖被以下文库推荐

沙发
lintorny 发表于 2013-5-21 14:18:03 |只看作者 |坛友微信交流群
沙发自己做了。。。

使用道具

藤椅
xhety 发表于 2013-5-21 14:53:00 |只看作者 |坛友微信交流群
牛逼呀

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 12:28