楼主: akalius
899 4

根据规则删除观测 [推广有奖]

  • 10关注
  • 3粉丝

讲师

48%

还不是VIP/贵宾

-

威望
0
论坛币
4168 个
通用积分
9.1543
学术水平
4 点
热心指数
6 点
信用等级
6 点
经验
7832 点
帖子
261
精华
0
在线时间
605 小时
注册时间
2009-7-22
最后登录
2024-4-9

楼主
akalius 学生认证  发表于 2017-3-20 19:02:17 |只看作者 |坛友微信交流群|倒序 |AI写论文
200论坛币


下面是原始数据,删除规则如下,如果在两个时期,出现了大于等于两家相同的institution,则将对应的name的观测都删除掉,即,把下面的张三,李四删除掉

nameyearqtrinstitutionsex
张三

2013

1

微软
张三

2013

1

脸书
张三

2014

3

微软
张三

2014

3

脸书
张三

2015

4

微软
李四

2015

2

联合利华
李四

2015

3

联合利华
李四

2015

3

保洁
李四

2015

3

谷歌
李四

2015

4

联合利华
李四

2015

4

谷歌
王五

2013

4

谷歌
王五

2014

3

华为
王五

2014

3

谷歌
王五

2014

4

华为



关键词:Institutions Institution tions 联合利华 name 联合利华 谷歌 华为 微软 2014
沙发
l1i2n3i4n5g 在职认证  发表于 2017-3-21 00:10:09 |只看作者 |坛友微信交流群
data test;
input name :$10.        year        qtr        institution :$20.        sex :$10.;
cards;
张三        2013        1        微软        男
张三        2013        1        脸书        男
张三        2014        3        微软        男
张三        2014        3        脸书        男
张三        2015        4        微软        男
李四        2015        2        联合利华        女
李四        2015        3        联合利华        女
李四        2015        3        保洁        女
李四        2015        3        谷歌        女
李四        2015        4        联合利华        女
李四        2015        4        谷歌        女
王五        2013        4        谷歌        男
王五        2014        3        华为        男
王五        2014        3        谷歌        男
王五        2014        4        华为        男
;
run;

proc sort data=test nodupkey;
by name year qtr institution;
run;

proc sort data=test out=test1 nounikey;
by name year qtr;
run;

proc sort data=test1 out=test2 nodupkey;
by name year qtr;
run;

proc sql data=test2;
create table test3 as
select name, count(name) as count
from test2
group by name;
quit;

data test4;
merge test test3;
by name;
if count<=1;
drop count;
run;
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
akalius + 5 + 2 + 2 + 2 精彩帖子

总评分: 论坛币 + 5  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

使用道具

藤椅
yongyitian 发表于 2017-3-21 09:27:17 |只看作者 |坛友微信交流群
李四只有一个时期 (year=2015)

proc sql;
   create table aa as
   select distinct name, year, count(distinct institution) as n_inst
   from have
   group name, year;

   create table bb as
   select name, count(year) as n_year
   from aa
   where n_inst >=2
   group by name;

   create table cc as
   select name
   from bb
   where n_year <2;

   create table want as
   select name, year, qtr, institution, sex
   from have dd
   where dd.name in (select name from cc);

quit;

使用道具

板凳
akalius 学生认证  发表于 2017-3-21 10:42:14 |只看作者 |坛友微信交流群
l1i2n3i4n5g 发表于 2017-3-21 00:10
data test;
input name :$10.        year        qtr        institution :$20.        sex :$10.;
cards;
这段程序的想法是什么呢,没看懂

使用道具

报纸
l1i2n3i4n5g 在职认证  发表于 2017-3-21 12:23:47 |只看作者 |坛友微信交流群
akalius 发表于 2017-3-21 10:42
这段程序的想法是什么呢,没看懂
step1.同一时期,“出现了大于等于两家相同的institution”的记录找出来,形成test1;
step2.在test1基础上,只列具体时期,形成test2;
step3.数一数每个name有几个这样的时期,形成test3;
step4.根据需要的时期个数保留记录,形成test4。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 02:38