全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5095 5
2017-05-04
idstatusamountclass

1

normal

1

n

1

normal

1

n

1

normal

1

n

2

normal

1

n

2

abnormal

1

n

3

abnormal

1

n

3

unusual

1

n

3

normal

1

n

3

abnormal

1

n

4

normal

1

n

4

normal

1

n
我有一个大致是上述这样的数据集,如果status不是normal 我就想删除整个id 例如id=2和3里的status存在abnormal 和unusual 我需要删除整个id 2和3 该怎么做呢? 求路过的大神指点一下 谢谢!!
二维码

扫码加我 拉你入群

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

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

全部回复
2017-5-4 11:41:07
读你的数据集进来的时候把where选项用上。
set yourdata(where=(status='normal'));

假如换成是用proc sql来实现, 那么

proc sql;
      select * from yourdataset
             where status = 'normal'
       ;
quit;

最基本的筛选操作呀兄弟
二维码

扫码加我 拉你入群

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

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

2017-5-4 12:20:25
foocares 发表于 2017-5-4 11:41
读你的数据集进来的时候把where选项用上。
set yourdata(where=(status='normal'));
不对 你这样 id2和3里的normal也会被保存下来 我的意思是只要该id有一个状态不是normal 我就删除该id全删了
二维码

扫码加我 拉你入群

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

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

2017-5-4 15:34:33
复制代码
二维码

扫码加我 拉你入群

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

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

2017-5-4 16:43:40
简单:
proc sql;
      select * from table
             where  id not in (select distinct id from table where status <> 'normal')
       ;
quit;
二维码

扫码加我 拉你入群

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

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

2017-5-6 16:36:52
复制代码

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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