【发布时间】:2017-09-06 16:08:49
【问题描述】:
我有以下数据框
df1
ID PMT_DATE
100 2015/01/01
100 2015/02/01
100 2015/04/01
200 2016/01/01
200 2016/02/01
和 df2
ID DATE STATUS
100 2014/12/31 A
100 2015/03/15 B
200 2015/12/31 A
200 2016/06/01 C
我将创建一个数据框,它是 df1 和 df2 中的 STATUS 列。如果 df1 中的 PMT_DATE 列大于或等于 df2 中的 DATE 列,则 df2 中的关联状态应放置在新数据框中。生成的数据框应如下所示
ID PMT_DATE STATUS
100 2015/01/01 A
100 2015/02/01 A
100 2015/04/01 B
200 2016/01/01 A
200 2016/02/01 A
通常我会加入这两个表,创建一个新列并使用 mutate 执行计算并删除我不再需要的列,但由于 df1 和 df2 中的 ID 列中有多个匹配项,我可以'没有完全实施该策略。
编辑:对于多场比赛,我想要最新的状态。例如,ID == 100 的最后一行将同时属于状态 == A 和状态 == B,但我只想要状态 B。此外,两个数据帧中的 ID 字段代表相同的东西(即通过 ID 连接是我想要的)。
我在想一些类似的东西
new_df <- df1 %>% rowwise() $>% do() ...
但我不确定如何填写其余部分以实现我所需要的。
【问题讨论】:
-
df1的第三行不应该是A和B的状态吗?