私は以下のような2つのデータフレームを持っています。R Merge - 左結合ですが、すべての変数を表示します
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_2 $ ID_2、as.character(DF_1 $ ID_1)、NAでDF_1 $ ID_1%)'を行うことができます。あなたは実際にマージをしていません。むしろ、第2のデータフレームに値が表示されている場合は最初の列と同じで、別の場合はNAと同じ別の列が必要です。 – nicola