いくつかのデータにいくつかの異なる計算を適用して、データを1つのフィールド(例では州ごと)でグループ化するように見えますか?
これを行うには多くの方法があります。この関連する質問を参照してください。
Hadley Wickhamのreshape
パッケージを使用できます(reshapeホームページを参照)。たとえば、値でグループ化されたデータに平均、合計、およびカウント関数を適用する場合(これは無意味ですが、形状変更からの空気品質データを使用します):
> library(reshape)
> names(airquality) <- tolower(names(airquality))
> # melt the data to just include month and temp
> aqm <- melt(airquality, id="month", measure="temp", na.rm=TRUE)
> # cast by month with the various relevant functions
> cast(aqm, month ~ ., function(x) c(mean(x),sum(x),length(x)))
month X1 X2 X3
1 5 66 2032 31
2 6 79 2373 30
3 7 84 2601 31
4 8 84 2603 31
5 9 77 2307 30
または、この機能を使用することもできますby()
。インデックスが状態を表す場所。あなたの場合、1つの関数(たとえば平均)を適用するのではなく、(ニーズに応じて)複数のタスクを実行する独自の関数を適用できます。たとえば、function(x) { c(mean(x), length(x)) }
。次にdo.call("rbind"
、出力で(たとえば)実行します。
また、Sweave(xtable付き)やJeffreyHornerのbrewパッケージなどのレポートパッケージの使用を検討することもできます。学習者のブログには、その使用方法を示す 反復レポートの作成に関するすばらしい投稿があります。