2016-12-06 53 views
-4

兩個相當大的 例如:檢查的DF值在另一個數據幀中存在,並添加列

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)列中添加到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) 

但是它說,列名 '名稱' '' NAME1結果中被複制。 (請假設更改列名不是一個選項)

我也試過一個for循環

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

但是我不知道怎麼去匹配的緯度和經度添加到DF1。任何幫助?由於

+0

不應該是all.x = TRUE? –

+0

我有一個類似名稱的列,所以它仍然給我列結果 – Plle02

+0

'library(dplyr)'並且左連接兩個表'left_join(Df1,Df2)' –

回答

0

嘗試是這樣的:

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

其中by.x在這種情況下DF1和by.y是DF2。它可以幫助您按包含相同數據但具有不同名稱的列進行合併。祝你好運!

相關問題