data.tableライブラリを使用して、Rの2つのdata.framesで左ジョイントを行いたいとします。私は何を持っている:私は、結果が新しいdata.tableフレームであることを左ジョイントdata.tableマージ
library(data.table)
id<-c("a1","a2","a3","a4")
id2<-c("a2","a3","a1","a4")
y<-c(1,2,3,4)
z<-c(3,5,6,7)
k<-c(1,3,8,7)
df1<-data.table(id,y,z)
id<-c("a2","a3","a1","a4")
df2<-data.table(id,k,y)
たい、LEFTの結果、このJOINをされて、これは次のようになります。
result--> id,x,y,z
私はガイドとしてこれを使用します。 https://rstudio-pubs-static.s3.amazonaws.com/52230_5ae0d25125b544caab32f75f0360e775.html
merge(df1,df2,by="id",all.x=TRUE)
しかし、これは私を返す:
id y.x z x y.y
1: a1 1 3 3 3
2: a2 2 5 0 1
3: a3 3 6 2 2
4: a4 4 7 1 4
この問題は、列yが重複していて、一度しか表示されないようにすることです。
私はall = FALSE、all.x = T、で試しましたが、私が望むものを達成できません。
で提案されているように私はまた、他の解決策を試してみました:left join in data.table
setkey(df1,id)
setkey(df2,id)
df1[df2]
しかし、これを再び、Y列を複製します。
id y z k i.y
1: a1 1 3 8 3
2: a2 2 5 1 1
3: a3 3 6 3 2
4: a4 4 7 7 4
どうすればいいですか?
希望の出力は何ですか? –
なぜあなたは驚いていますか?両方のテーブルにy列があります。あなたが彼らのうちの1つだけを望むことをRがどのように知っていたと思いますかそしてどちらが? –