2017-04-19 10 views
0

left_joindplyrから使用して2つのデータフレームを結合しています。 (予想通り)dplyr :: left_joinを使用しているときにNAを使用しないようにしてください。

library(dplyr) 

dfOne <- data.frame(1:10, 
        8*(1:10), 
        c(2,4,6,8,10,12,14,16,18,20)) 
colnames(dfOne)<-c("one", "two", "three") 


dfTwo <- data.frame(1:6, 
        8*(1:6), 
        c(2,4,6,8,10,12)) 
colnames(dfTwo)<-c("one", "two", "three") 


left_join(dfOne[c("one", "two")], dfTwo[c("two", "three")], by="two") 

これは次の出力を与える

one two three 
1 1 8  2 
2 2 16  4 
3 3 24  6 
4 4 32  8 
5 5 40 10 
6 6 48 12 
7 7 56 NA 
8 8 64 NA 
9 9 72 NA 
10 10 80 NA 

threedfTwo$twodfTwo$oneに存在しないすべての行でNAで埋められます:ここではMWEです。ただしleft_joinを、NAの値を避けて使用することは可能ですか?代わりに空(NULL)ですか?

+0

「left_join」ではなく「inner_join」を使用しますか? –

答えて

1

私はあなたの質問を正しく理解していませんが、私が理解できれば、RのNAはSQLのNullと同じです。 NAを ""として表示するには、左の結合(例: "lj_df")にデータフレームの名前を付け、すべてのNAを置き換えます。あなたは ""で置き換えることができます0または "Null"または何か他の好き。

lj_df <- left_join(dfOne[c("one", "two")], dfTwo[c("two", "three")], by="two")  
lj_df[is.na(lj_df)] <- "" 
関連する問題