2

別の変数が割り当てられた値である間に、変数の合計、平均、および最大値を調べる簡単なコマンドがいくつかあります。

sum(data[data$var1==1,]$var2)
mean(data[data$var1==1,]$var2)
max(data[data$var1==1,]$var2)

これを素敵なテーブルに入れる方法はありますか?出力が散らばった行になっているという意味ではありませんか? さらに複雑にするためには、var1 のさまざまな値 (私の場合は 1 から 5) を中心にテーブルを構成し、var1 の各値に対して var 2 の平均値、最大値、合計値を取得する必要があります。

これはおそらく、私が現在 R を使用している場所よりも少し上です。私はまったくの初心者です。ただし、いくつかの助けをいただければ幸いです。ありがとう

4

3 に答える 3

4

テーブルパッケージを見て、パッケージのビネットを読んで、あなたが求めていることを正確に行う方法を示します。

> tabular( ( factor(cyl) + 1) ~ mpg * (sum + mean + max), data=mtcars )

             mpg             
 factor(cyl) sum   mean  max 
 4           293.3 26.66 33.9
 6           138.2 19.74 21.4
 8           211.4 15.10 19.2
 All         642.9 20.09 33.9
于 2013-09-01T04:12:28.770 に答える
1

そのために使用する必要がありますcbind

cbind(sum(data[data$var1==1,]$var2),mean(data[data$var1==1,]$var2),max(data[data$var1==1,]$var2))

mtcars データを使用した例

mydata<-mtcars  
  l<-cbind(sum(mydata[mydata$cyl==4,]$mpg),mean(mydata[mydata$cyl==4,]$mpg),max(mydata[mydata$cyl==4,]$mpg))
l<-data.frame(l)
names(l)<-c("sum","mean","max")
> l
    sum     mean  max
1 293.3 26.66364 33.9

ddplyvar1 (ここでは cyl) の各カテゴリに対してすべてを実行する plyr パッケージの関数があります。

library(plyr)
ddply(mydata,.(cyl),summarize, sum=sum(mpg),mean=mean(mpg), max=max(mpg))

 ddply(mydata,.(cyl),summarize, sum=sum(mpg),mean=mean(mpg), max=max(mpg))
  cyl   sum     mean  max
1   4 293.3 26.66364 33.9
2   6 138.2 19.74286 21.4
3   8 211.4 15.10000 19.2
于 2013-08-31T22:31:05.533 に答える