16

次のような 2 つのデータ フレームがあるとします。

df1 = data.frame(x=1:3,y=1:3,row.names=c('r1','r2','r3'))
df2 = data.frame(z=5:7,row.names=c('r5','r6','r7'))

(

R> df1
   x y
r1 1 1
r2 2 2
r3 3 3

R> df2
   z
r5 5
r6 6
r7 7

)、行名でそれらをマージし、すべてを保持したいと思います (したがって、外部結合、または all=T)。これはそれを行います:

merged.df <- merge(df1,df2,all=T,by='row.names')
R> merged.df
  Row.names  x  y  z
1        r1  1  1 NA
2        r2  2  2 NA
3        r3  3  3 NA
4        r5 NA NA  5
5        r6 NA NA  6
6        r7 NA NA  7

しかし、入力行名を出力データフレーム (merged.df) の行名にしたいです。

できます:

rownames(merged.df) <- merged.df[[1]]
merged.df <- merged.df[-1]

これは機能しますが、エレガントではなく、覚えにくいようです。よりクリーンな方法を知っている人はいますか?

4

2 に答える 2