【发布时间】:2021-02-16 23:11:07
【问题描述】:
我有两个独立的两个数据集,一个包含事件日期。每个 ID 只有一个“Eventdate”。如下:
data1 <- data.frame("ID" = c(1,2,3,4,5,6), "Eventdate" = c("2019-01-01", "2019-02-01", "2019-03-01", "2019-04-01", "2019-05-01", "2019-06-01"))
data1
ID Eventdate
1 1 2019-01-01
2 2 2019-02-01
3 3 2019-03-01
4 4 2019-04-01
5 5 2019-05-01
6 6 2019-06-01
在另一个数据集中,一个 ID 有多个事件名称 (Eventcode) 及其事件日期 (Eventdate)。如下:
data2 <- data.frame("ID" = c(1,1,2,3,3,3,4,4,7), "Eventcode"=c(201,202,201,204,205,206,209,208,203),"Eventdate" = c("2019-01-01", "2019-01-01", "2019-02-11", "2019-02-15", "2019-03-01", "2019-03-15", "2019-03-10", "2019-03-20", "2019-06-02"))
data2
ID Eventcode Eventdate
1 1 201 2019-01-01
2 1 202 2019-01-01
3 2 201 2019-02-11
4 3 204 2019-02-15
5 3 205 2019-03-01
6 3 206 2019-03-15
7 4 209 2019-03-10
8 4 208 2019-03-20
9 7 203 2019-06-02
两个数据集通过 ID 链接。两个数据集的 ID 并不完全相同。 我想在data2中选择有条件的案例:
- 按 ID 匹配
- 数据 2 中的事件日期 >= 数据 1 中的事件日期。
- 如果一个ID在data2中有多个Eventdates,选择最早的一个。
- 如果一个ID在data2中的一个Eventdate有多个Eventcode,随机选择一个即可。
然后将选中的data2合并到data1中。
预期结果如下:
data1
ID Eventdate Eventdate.data2 Eventcode
1 1 2019-01-01 2019-01-01 201
2 2 2019-02-01 2019-02-11 201
3 3 2019-03-01 2019-03-01 205
4 4 2019-04-01
5 5 2019-05-01
6 6 2019-06-01
或
data1
ID Eventdate Eventdate.data2 Eventcode
1 1 2019-01-01 2019-01-01 202
2 2 2019-02-01 2019-02-11 201
3 3 2019-03-01 2019-03-01 205
4 4 2019-04-01
5 5 2019-05-01
6 6 2019-06-01
非常感谢!
【问题讨论】:
标签: r date multiple-conditions