【发布时间】:2019-07-27 17:23:11
【问题描述】:
数据框 1 (df1) 具有以下列:
Year ID1 ID2 V1 V2 ....
数据框 2 (df2) 具有以下列:
Year ID
我想使用 df2 执行 semi_join 以按年份和 ID 过滤 df1,但我想在 df1 中保留 ID 与 ID1 或 ID2 匹配的观察结果。我不确定 dplyr 的 semi_join 是否有办法做到这一点,或者是否需要其他方法。
编辑:
df1 = data.frame(Year = c(rep(2000,5), rep(2001,5)),
ID1 = 1:5,
ID2 = 5:1,
V1 = seq(1,10, length.out = 10))
df2 = data.frame(Year = c(2000,2000,2001,2001), ID = c(1,2,1,3))
输出
Year ID1 ID2 V1
2000 1 5 1
2000 2 4 2
2000 4 2 4
2000 5 1 5
2001 1 5 6
2001 3 3 8
2001 5 1 10
【问题讨论】:
-
请提供可重现的样本数据(例如使用
dput)和匹配的预期输出。 -
也许可以先将 df1 转换为适当的长格式,然后加入?
-
@MauritsEvers 将其添加到我的帖子中
标签: r dataframe dplyr filtering