3

Rで複雑な表をコーディングする方法について誰か良い考えがありますか?

これについては少し漠然としているかもしれませんが、米国の統計要約に類似した複雑なテーブルの束を作成するスクリプトを設定したいと思います。

例:http ://www.census.gov/compendia/statab/tables/09s0015.pdf

そして、私はrbindとhbindステートメントの全体を避けたいと思います。

SASは、テーブル作成仕様言語があると聞きました。似たような力があるのか​​しらR

ありがとう!

4

3 に答える 3

3

いくつかのデータにいくつかの異なる計算を適用して、データを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パッケージなどのレポートパッケージの使用を検討することもできます。学習者のブログには、その使用方法を示す 反復レポートの作成に関するすばらしい投稿があります。

于 2009-09-23T19:10:52.103 に答える
1

別のオプションは、plyrパッケージです。

library(plyr)
names(airquality) <- tolower(names(airquality))
ddply(airquality, "month", function(x){
    with(x, c(meantemp = mean(temp), maxtemp = max(temp), nonsense = max(temp) - min(solar.r)))
})
于 2009-09-23T22:52:55.063 に答える
0

これは、このトピックに関する興味深いブログ投稿です。著者は、国連の世界人口の見通しに類似したレポートを作成しようとしています:2008年改訂レポート。

お役に立てば幸い、チャーリー

于 2009-10-01T18:49:10.260 に答える