【发布时间】:2016-12-13 00:47:25
【问题描述】:
我有一个数据框。
当第二列的值等于给定值时,我正在尝试使用tapply 函数来查找一列的平均值。
我希望tapply 返回平均值,但它返回的是一个逻辑数组
(FALSE - 第二列的值不等于给定值时的平均值,TRUE - 第二列的值等于给定值时的平均值)
这是我正在应用的函数(当列“cyl”等于 4 时,我想要列“hp”的平均值)
tapply(mtcars$hp,mtcars$cyl==4,mean)
这是返回的内容:
FALSE TRUE
180.23810 82.63636
我怎样才能让输出只是 82.63636?
谢谢
【问题讨论】:
-
抓取结果的第二个元素
tapply(mtcars$hp,mtcars$cyl==4,mean)[[2]] -
太棒了,绝对有效。谢谢!
-
虽然,你需要
tapply吗?mean(mtcars[mtcars$cyl == 4, "hp"])