2
我有2個數據幀,如下所示。R合併 - 左連接,但顯示所有變量
DF_1 <- data.frame(ID_1 = c("A","1","2","3","B","1","2","3","C","1","2","3"))
DF_2 <- data.frame(ID_2 = c("A","B","C"))
我需要創建另一個像下面的數據框。
ID_1 ID_2
1 A A
2 1 <NA>
3 2 <NA>
4 3 <NA>
5 B B
6 1 <NA>
7 2 <NA>
8 3 <NA>
9 C C
10 1 <NA>
11 2 <NA>
12 3 <NA>
我目前正在使用它來實現結果。但是,我想盡可能遠離sql。
library(sqldf)
RESULT <- sqldf('select aa.ID_1, bb.ID_2
from DF_1 aa left join DF_2 bb
on aa.ID_1 = bb.ID_2')
我也利用合併審理。
RESULT <- merge(DF_1, DF_2, by.x = "ID_1", by.y = "ID_2", all.x = TRUE)
但是,我得到下面這是缺少ID_2
。
ID_1
1 1
2 1
3 1
4 2
5 2
6 2
7 3
8 3
9 3
10 A
11 B
12 C
嘗試'DF_1 $ ID_2 <-ifelse(DF_1 $ ID_1%在%DF_2 $ ID_2,as.character(DF_1 $ ID_1),NA)''。你實際上並沒有進行合併。相反,在我看來,如果該值出現在第二個數據幀中,則需要另一列等於第一列,否則爲NA。 – nicola