使用公式[R]计算表格中的值的均值

Mar*_*ark 6 r

我知道像xtabs和table这样的命令允许用户进行交叉制表

例如,以下命令生成一个数据透视表,显示具有相同齿轮数和气缸数的汽车数.

> xtabs(~cyl+gear, data = mtcars)
   gear
cyl  3  4  5
  4  1  8  2
  6  2  4  1
  8 12  0  2
> 
Run Code Online (Sandbox Code Playgroud)

我们可以扩展公式,以便它可以显示每个箱子中汽车的马力的总和

> xtabs(hp~cyl+gear, data = mtcars)
   gear
cyl    3    4    5
  4   97  608  204
  6  215  466  175
  8 2330    0  599
> 
Run Code Online (Sandbox Code Playgroud)

我现在想知道,是否可以计算每个垃圾箱中汽车马力的平均值?例如这样的事情xtabs(mean(hp)~cyl+gear, data = mtcars)

Ram*_*ath 10

你可以使用它做在同一行castreshape

cast(mtcars, cyl ~ gear, value = 'hp', fun = mean)
Run Code Online (Sandbox Code Playgroud)


Mar*_*ark 7

我从r-help收到的一个有趣回应如下:

> attach(mtcars)
> tapply(hp,list(cyl,gear),mean)
         3     4     5
4  97.0000  76.0 102.0
6 107.5000 116.5 175.0
8 194.1667    NA 299.5
> 
Run Code Online (Sandbox Code Playgroud)

  • 或者`with(mtcars,tapply(hp,list(cyl,gear),mean))` (3认同)