R中两个数据帧的匹配元素

时间:2016-08-12 08:42:24

标签: r

我有两个数据框。第一个看起来像这样

  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

有人可以帮助我吗?

2 个答案:

答案 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")