全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1410 5
2012-10-21
大家好,假设一个data中有两个变量 ID 和 score。每个ID 对应三个SCORE,如果有一个SCORE 为 missing,那么就把这个ID 的所有数据都删除(这个ID就在data中消失了……)。
请问大家知道该怎么做吗?非常感谢!

二维码

扫码加我 拉你入群

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

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

全部回复
2012-10-21 23:49:41
It can be done easily with SQL subsuery. See below,

data t1;
   do id=1,2,3;
      do j=1,2,3;
             score=round(ranuni(123)*100);
                 if id=2 and j in (2) then score=.;
                 output;
          end;
        end;
        keep id score;
run;

proc print;run;

proc sql;
  select id, score
  from t1
  where id not in (
           select distinct id
           from t1
           where score=.
                   )
  ;
  quit;
二维码

扫码加我 拉你入群

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

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

2012-10-22 14:49:07
assume data=test is such a dataset.

proc sort data=test;
   by ID;
run;

data test_missing (keep=ID temp_index);
   set test;
   if score=.;
   temp_index=1;
run;

data final;
    merge test test_missing;
    by ID;
run;

data final (drop=temp_index);
    set final;
    if temp_index=1 then delete;
run;

/* data=final is what you get */
二维码

扫码加我 拉你入群

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

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

2012-10-22 21:24:10
chengsm13 发表于 2012-10-22 14:49
assume data=test is such a dataset.

proc sort data=test;
非常感谢,出来了我想要的结果,谢谢!
二维码

扫码加我 拉你入群

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

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

2012-10-22 21:25:52
bobguy 发表于 2012-10-21 23:49
It can be done easily with SQL subsuery. See below,

data t1;
非常感谢解答!但是惭愧,我对proc sql 不熟悉,所以就采用3楼那位朋友的做法了。 谢谢!
二维码

扫码加我 拉你入群

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

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

2012-10-23 07:21:19
学习了
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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