【发布时间】:2019-12-03 17:16:49
【问题描述】:
我有这两个数据框。
DF1:
DF2:
我希望我的输出 DF 是 DF1 以及来自 DF2 的 X1 的值。也就是说,这就是我希望输出的样子:
我曾尝试使用合并和连接,但无法获得所需的输出。主要问题似乎是由于 DF1 中的 ID 在 DF2 中有多个匹配项。我得到的结果数据框包含所有行,有点像这样:
我该如何解决这个问题?
谢谢。
(为表格图片道歉,我无法弄清楚如何即时创建表格)
【问题讨论】:
我有这两个数据框。
DF1:
DF2:
我希望我的输出 DF 是 DF1 以及来自 DF2 的 X1 的值。也就是说,这就是我希望输出的样子:
我曾尝试使用合并和连接,但无法获得所需的输出。主要问题似乎是由于 DF1 中的 ID 在 DF2 中有多个匹配项。我得到的结果数据框包含所有行,有点像这样:
我该如何解决这个问题?
谢谢。
(为表格图片道歉,我无法弄清楚如何即时创建表格)
【问题讨论】:
您可以使用match 返回DF2 中的第一个命中。
DF1$X1 <- DF2$X1[match(DF1$ID, DF2$ID)]
【讨论】:
在第二个数据框中保留 ID 的唯一值,然后加入:
library(tidyverse)
DF2 <- DF2 %>%
distinct(ID, .keep_all = TRUE) %>%
select(ID, X1)
res <- DF1 %>%
inner_join(DF2, by = "ID")
glimpse(res)
【讨论】: