R - 通过匹配和不同维度的另一个数据集中的变量在数据集中创建新变量

时间:2017-06-18 16:32:48

标签: r

我正在尝试创建一个新变量并将其附加到数据集中,该数据集的值将来自匹配另一个数据集的变量值。

例如

    data set 1
        A B
        1 a
        2 b
        3 c
    data set 2
        A 
        1
        2
        3
        1
        3
        2

我希望我的结果看起来像

data set 2
    A B
    1 a
    2 b
    3 c
    1 a
    3 c
    2 b

我尝试使用以下"匹配"函数来获得结果

data set 2$B <- data set 1$B[match(data set 1$A, data set 2$A)]

但它抛出的错误是

incorrect number of dimensions

如何处理?请注意,我不想合并两个数据集,因为数据集2包含数百个或其他变量。

还提出了处理尺寸误差的问题。

谢谢,Mrinal

1 个答案:

答案 0 :(得分:0)

您的数据:

df1 <- data.frame(A=1:3,B=letters[1:3])
df2 <- data.frame(A= c(1:3, c(1,3,2)))

使用match

df2$B <- df1$B[match(df2$A,df1$A)]
df2

  A B
1 1 a
2 2 b
3 3 c
4 1 a
5 3 c
6 2 b