全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
6335 7
2010-07-06
我现在手里的数据(一个问卷)有三个不同的时间段,在某个时间段里,有二十几个问题(也就是二十几个变量)的对应数据是全部缺失的(缺失值用 . ”表示)。我想删除这些缺失了数据的变量,于是我写了下面的code

data perf_com;

setgivaudan.perf;

array num_numeric_;

do
over num;

if num= .
then
delete;

end;

run;

运行完了以后,删除的却不是变量而是个体。两千多个个体删除以后只剩下一千多。变量却一个没少。

请问论坛的高手们,如何才能保留所有的个体而删除有数据缺失(如果给个限制条件,可以使每个变量缺失超过100个个体的观测值则删除)的变量呢


谢谢各位!
二维码

扫码加我 拉你入群

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

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

全部回复
2010-7-6 15:23:14
Delete是用来删除记录的
二维码

扫码加我 拉你入群

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

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

2010-7-6 15:29:35
data crackman;
input x y z m n@;
cards;
1 2 3 . 6
3 . 6 7 9
3 4 7 8 9
;
run;
proc transpose data=crackman out=a;
var _all_;
run;
data a;
set a;
array col col1-col3;
do over col;
if col=. then delete;
end;
run;
proc transpose data=a out=crackman(drop=_name_);
var col1-col3;
run;
或许是一个方法
二维码

扫码加我 拉你入群

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

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

2010-7-6 15:30:49
找不到nmiss相关的具体的example, 不知道怎么用... go on
二维码

扫码加我 拉你入群

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

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

2010-7-6 15:35:18
nmiss 是用来计算有数据缺失的变量的数量的...
二维码

扫码加我 拉你入群

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

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

2010-7-6 15:36:30
data test;
  input a b;
  datalines;
1 2
. 5
. 4
2 .
3 4
. 8
;

proc transpose data=test out=a;
var _all_;
run;

proc sql noprint;
    select distinct _name_ into :dropvar separated by " "
         from a
         where nmiss(col1,col2,col3,col4,col5,col6)=3;
quit;

data result;
    set test;
        drop &dropvar;
run;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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