9

私はここに来たばかりで、フォーラムで問題を検索しましたが、解決策が見つかりませんでした。共通のキー フィールドにマージしたい 2 つのデータ フレームがあります。

          merge(x
               ,y
               ,by.x="a"
               ,by.y="b"
               ,all.x=T
               ,sort=F
               )

x-Dataframe には y-Dataframe よりも多くの行があるため、x のすべての行を y の列の NA で保持したいが、列のすべての値は x から保持したい。このコードは、すべての列 (x と y の列) に NA が含まれる一致しないケースの追加の行のみを提供しています。誰かが私を助けてくれたら本当にありがたいです? 私の間違いはどこですか?

例:

a = data.frame(c(111,222,333,444),c(1,5,3,8))
b = data.frame(c(111,222),c(0.1,0.4))
colnames(a)=c("code","value")
colnames(b)=c("code","value")
c = merge(a
          ,b
          ,by="code"
          ,all.x=T)

この例では、正常に動作しています。私のデータでは、行 3 と 4 のすべての列で NA を取得しています。

私のお粗末な例を理解していただければ幸いです?!

ありがとうございました!ジェシカ ;)

4

2 に答える 2

2

設定するだけですall=TRUE

# Create your data
x<-data.frame(val1=c(2,8,6,3),a=c('h','k','b','e'))
y<-data.frame(val2=c(4,1),b=c('h','e'))
# Outer join
merge(x,y,by.x='a',by.y='b',all=TRUE)
#   a val1 val2
# 1 b    6   NA
# 2 e    3    1
# 3 h    2    4
# 4 k    8   NA
于 2013-10-18T15:43:46.230 に答える