全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
14920 5
2013-01-22

1 检查数据集中每条观测数值变量有多少个变量是缺失的。

data a(keep=k);

set a ;

array x _numeric_ ;

do i=1 to dim(x);

if x(i)=. then j+1;

end;

k=j-lag(j);

if j=0 and k=. then k=0;

label k="每条观测的缺失个数";

run;


2  检查数据中每个变量的缺失个数。

proc means data=a nmiss noprint;

var var1-varn;

output out=miss(drop=_type_ _freq_) nmiss=;

run;


以上在学习上的一点总结,还在点点滴滴的积累,程序较笨拙。欢迎各位高手指点!



二维码

扫码加我 拉你入群

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

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

全部回复
2013-1-22 17:37:05
你可以考虑完善下有字符变量的情况。
二维码

扫码加我 拉你入群

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

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

2013-1-23 09:47:52
webgu 发表于 2013-1-22 17:37
你可以考虑完善下有字符变量的情况。
针对lz的第2个问题,包含数值型和字符型变量,我写了下面这个宏,供参考
复制代码
二维码

扫码加我 拉你入群

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

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

2014-4-1 20:33:18
楼主你好,我有一个疑问,若数据集的第一条观测值有缺失值,那么最后得到的第一条观测值的缺失值的个数显示为缺失,这是个什么情况?代码如下:

data a;
input V1-V5@@;
datalines;
1 . 4 2 6
3 . . . .
1 2 . 2 4
;
run;

data b(keep=k);
set a ;
array x _numeric_ ;
do i=1 to dim(x);
if x(i)=. then j+1;
end;
k=j-lag(j);
if j=0  and k=. then k=0;
label k="每条观测的缺失个数";
run;
二维码

扫码加我 拉你入群

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

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

2017-10-18 23:12:02
☆Justforyou 发表于 2014-4-1 20:33
楼主你好,我有一个疑问,若数据集的第一条观测值有缺失值,那么最后得到的第一条观测值的缺失值的个数显示 ...
楼主的代码忽略了这个问题,加一句语句就可以解决了。
复制代码
二维码

扫码加我 拉你入群

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

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

2023-3-6 12:03:16
我自己照着楼组的代码改编了下,也是用的array和do循环为每个观测遍历缺失值,最后加和,这样做应该也行?就是不知道有没有我没考虑到的bug,因为似乎过于简单了,或者是因为十年过去了,SAS更新了吗?
复制代码
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群