检查df中的值是否存在于另一个数据框中并添加列

时间:2016-12-06 08:23:16

标签: r dataframe rscript

两者都相当大 例如:

DF1

Name name2  code2 code3
A    1      2     3
B    1      2     3
C    1      2     3

Df2

Name      lat           lon
A         5             6
C         1             2

我想将df1与df2进行比较,如果匹配将(lat lon)col添加到df1

Df1

Name name 2 code2 code3  lat    lon
A    1     2     3      5      6
B    1     2     3
C    1     2     3      1      2

我试过了

test <- merge(df1, df2, by = 'Name', all = TRUE) 

但是它说列名称&#39; name&#39; &#39; NAME1&#39;在结果中重复。 (请假设不能更改列名)

我也尝试过for循环

For( i in 1: nrow(df1)) {
      If ( df1$`Name`[I] %in% df2$Name) {
            Df1$lat[I] = df2$lat 
      }
}

但是我不知道如何将匹配的lat和lon添加到df1。有帮助吗?谢谢

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

merge(df1, df2, by.x = 'Name1',by.y = 'Name', all = TRUE)

其中by.x在这种情况下是df1而by.y是df2。它可以帮助您按包含相同数据但具有不同名称的列进行合并。祝你好运!