全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3758 5
2014-11-06
判断两个变量值是否唯一匹配?
我有如下一组数据:
数据集a有20条观测,我想判断变量a与变量b的值是否唯一匹配,保留不唯一匹配的原始观测到一个新数据集b,如何写程序?
例如:变量a=1时,变量b的取值为1、2或3,这样就符合保留的条件;
变量a=2时,变量b的取值都为1,这样的观测就删掉,不保留在新数据集b中。
谢谢各位大神指教!!
复制代码
二维码

扫码加我 拉你入群

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

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

全部回复
2014-11-6 16:30:45
proc sql;
create table b as
select * from a
group by a
having count(distinct b)>1
order by a,c;
quit;
二维码

扫码加我 拉你入群

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

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

2014-11-6 16:48:11
wwang111 发表于 2014-11-6 16:30
proc sql;
create table b as
select * from a
非常感谢你的帮助!
我为什么想不到用变量a分组再计算变量b值个数>1呢?
能说说你是怎么想到的呢?
我只想到用自连接加条件,可是不行,代码如下:
复制代码
二维码

扫码加我 拉你入群

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

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

2014-11-6 17:01:21
对于怎么想出来的,我实在不知道怎么回答

用连接我也没想出更好的方法,只能把上面的程序变复杂一点

proc sql noprint;
        create table a1(drop=a1) as
        select * from a as s1 ,(select distinct a as a1 from a group by a having count(distinct b)>1) as s2
        where s1.a = s2.a1
        order by s1.a
        ;
quit;
二维码

扫码加我 拉你入群

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

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

2014-11-6 17:09:28
wwang111 发表于 2014-11-6 17:01
对于怎么想出来的,我实在不知道怎么回答

用连接我也没想出更好的方法,只能把上面的程序变复杂一 ...
这个其实还没有跳出你那个思维,可能用连接做不出来吧,我是不会整了。
向你学习。。。以后多赐教。。。
二维码

扫码加我 拉你入群

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

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

2014-11-6 20:43:51
920240553 发表于 2014-11-6 16:48
非常感谢你的帮助!
我为什么想不到用变量a分组再计算变量b值个数>1呢?
能说说你是怎么想到的呢?
proc sql noprint;
        create table a1 as
        select distinct s1.* from a as s1 , a as s2
        where s1.a = s2.a and s1.b ^= s2.b
        order by c
        ;
quit;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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