我知道像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
你可以使用它做在同一行cast从reshape库
cast(mtcars, cyl ~ gear, value = 'hp', fun = mean)
Run Code Online (Sandbox Code Playgroud)
我从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)