R - 应用列均值,返回逻辑数组
R - tapply column mean, returning logical array
我有一个数据框。
我正在尝试使用 tapply
函数在第二列的值等于给定值时求出一列的平均值。
我想要tapply
到return的平均值,但它是returning一个逻辑数组
(FALSE - 第二列的值不等于给定值时的平均值,TRUE - 第二列的值等于给定值时的平均值)
这是我正在应用的函数(当第 "cyl" 列等于 4 时,我想要第 "hp" 列的平均值)
tapply(mtcars$hp,mtcars$cyl==4,mean)
这就是return编辑的内容:
FALSE TRUE
180.23810 82.63636
如何让输出简单地为 82.63636?
谢谢
如果您有使用tapply
,您需要将结果子集化为仅return您想要的值
tapply(mtcars$hp,mtcars$cyl==4,mean)[[2]]
82.63636
但是,要获得一个列的平均值,由另一个列子集,您只需对子集数据调用 mean
mean(mtcars$hp[mtcars$cyl == 4])
82.63636
## similarly
# mean(mtcars[mtcars$cyl == 4, "hp"])
我有一个数据框。
我正在尝试使用 tapply
函数在第二列的值等于给定值时求出一列的平均值。
我想要tapply
到return的平均值,但它是returning一个逻辑数组
(FALSE - 第二列的值不等于给定值时的平均值,TRUE - 第二列的值等于给定值时的平均值)
这是我正在应用的函数(当第 "cyl" 列等于 4 时,我想要第 "hp" 列的平均值)
tapply(mtcars$hp,mtcars$cyl==4,mean)
这就是return编辑的内容:
FALSE TRUE
180.23810 82.63636
如何让输出简单地为 82.63636?
谢谢
如果您有使用tapply
,您需要将结果子集化为仅return您想要的值
tapply(mtcars$hp,mtcars$cyl==4,mean)[[2]]
82.63636
但是,要获得一个列的平均值,由另一个列子集,您只需对子集数据调用 mean
mean(mtcars$hp[mtcars$cyl == 4])
82.63636
## similarly
# mean(mtcars[mtcars$cyl == 4, "hp"])