全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2341 12
2014-03-23
数据集A  :
id        date
1        2011/2/11
1        2011/2/13
1        2011/2/17
1        2011/2/18
1        2011/2/20
1        2011/2/21
1        2011/2/24
1        2011/2/25
2        2011/2/11
2        2011/2/13
2        2011/2/17
2        2011/2/18
2        2011/2/20
2        2011/2/21
2        2011/2/24
2        2011/2/25



数据集B:
id        date
1    2011/2/172    2011/2/20
怎么从数据集A中根据 数据集B中 各id 对应日期得到前后2个数据,
也就是得到
数据集C:
id  data
1        2011/2/11
1        2011/2/13
1        2011/2/17
1        2011/2/18
1        2011/2/20

2        2011/2/17
2        2011/2/18
2        2011/2/20
2        2011/2/21
2        2011/2/24
2        2011/2/25


求大神指点!!!!
二维码

扫码加我 拉你入群

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

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

全部回复
2014-3-23 16:55:41
数据集B 打歪了 应该是:
id        date
1    2011/2/17   
2    2011/2/20
————————————————————
数据集C也多打了一个,应该是:
id  data
1        2011/2/11
1        2011/2/13
1        2011/2/17
1        2011/2/18
1        2011/2/20

2        2011/2/17
2        2011/2/18
2        2011/2/20
2        2011/2/21
2        2011/2/24
二维码

扫码加我 拉你入群

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

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

2014-3-23 17:36:14
复制代码
二维码

扫码加我 拉你入群

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

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

2014-3-23 22:28:37
刚做了个一样的,只是日期值没有被我换成日期
data a;
input id date;
cards;
1     201001
1     201002
1     201003
1     201004
1     201005
1     201006
1     201007
1     201008
2     201001
2     201002
2     201003
2     201004
2     201005
2     201006
2     201007
2     201008
3     201001
3     201002
3     201003
3     201004
3     201005
3     201006
3     201007
3     201008
;
run;

data b ;
input id date;
cards;
1   201003
2   201004
3   201006
;
run;
proc sort data=a; by id;run;
proc sort data=b ;by id;run;

data c;
set a;
by id;
if first.id then do;
        set b(rename=(date=date_b));       
end;
if date=date_b-2 or date=date_b+2 then output;
run;
二维码

扫码加我 拉你入群

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

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

2014-3-23 22:57:20
intheangel 发表于 2014-3-23 17:36
谢谢,大致明白你的意思。
如果数据很多的话,也就是有很多个id,且id i的取值不是连续的,诸如1、2、4、5、6、8...
那么怎么通过数据集B,来找到A中对应的数据。
已知数据集A中有多个id,每个id 有很多date,
数据集B 有多个id,每个id对应有1个date。
问题是 通过数据集B中的id 和 date ,找到对应数据集A中该id所在date前后一定数量的数据。
二维码

扫码加我 拉你入群

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

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

2014-3-23 23:04:34
正午 发表于 2014-3-23 22:28
刚做了个一样的,只是日期值没有被我换成日期
data a;
input id date;
谢谢你的代码。
但是你给定的数据集中的date 是连续的,那么你找到的数据必然是符合某一观测值前后n个的数据。
如果date不是连续的,例如A中date的观测值是1、2、5、6、8;
现在确定了B中某个id对应的data是5,照你的方法,找不到5前面的两个观测值(1、2)。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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