5

4 つのデータフレームがあり、それぞれがリスト内のインデックスです。それらを1つのデータフレームとしてまとめたいと思います。数学のセット言語では、これが行名の結合であることが最も理にかなっています。だから私はこのようなものを持っているかもしれません:

U <- union(dfSub[[1]], dfSub[[2]], dfSub[[3]], dfSub[[4]])

この関数の問題は、unionベクトルに対してのみ動作することです。これをデータフレームで動作させるにはどうすればよいですか?

  1. これをRに翻訳するにはどうすればよいですか?
  2. 望ましい結果を達成するためのより良い方法はありますか?

編集:結合後に行名を保持するにはどうすればよいですか?

4

2 に答える 2

-2

マージ機能を使用してデータフレームを組み合わせることができます。複数のデータフレームがあるため、 Reduceを使用してそれらを一度にマージできます。

merged.data <- Reduce(function(...) merge(...), list(dfSub[[1]], dfSub[[2]], dfSub[[3]], dfSub[[4]])

例として:

> people <- c('Bob', 'Jane', 'Pat')
> height <- c(72, 64, 68)
> weight <- c(220, 130, 150)
> age <- c(45, 32, 35)
> height.data <- data.frame(people, height)
> weight.data <- data.frame(people, weight)
> age.data <- data.frame(people, age)

> height.data
  people height
1    Bob     72
2   Jane     64
3    Pat     68
> weight.data
  people weight
1    Bob    220
2   Jane    130
3    Pat    150
> age.data
  people age
1    Bob  45
2   Jane  32
3    Pat  35


> Reduce(function(...) merge(...), list(height.data, weight.data, age.data))
  people height weight age
1    Bob     72    220  45
2   Jane     64    130  32
3    Pat     68    150  35
于 2013-05-06T22:38:12.290 に答える