我有两个数据框。第一个看起来像这样
name
1 a
2 b
3 c
4 d
5 f
和第二个像这样
name value
1 b 3
2 d 4
3 f 5
4 a 1
5 c 2
6 k 7
7 m 6
现在我想在第一个数据框中添加第二列,其中包含从第二个列表中获取的元素的值。它必须看起来像这样
name value
1 a 1
2 b 3
3 c 2
4 d 4
5 f 5
有人可以帮助我吗?
答案 0 :(得分:1)
您可以使用merge
执行此操作。如果您的第一个数据框称为df1
,而第二个数据框df2
:
merge(df1, df2, by='name')
答案 1 :(得分:1)
您想要做的是内部联接。您可以尝试使用dplyr
包。
library(dplyr)
x <- data.frame(name = c("a", "b", "c", "d", "f"), stringsAsFactors = FALSE)
y <- data.frame(name = c("b", "d", "f", "a", "c", "k", "m"),
value = c(3, 4, 5, 1, 2, 7, 6),
stringsAsFactors = FALSE)
joined <- dplyr::inner_join(x, y, by = "name")