我真的很喜欢R中的应聘家庭,但我想我仍然没有得到最好的帮助。
with(mtcars, tapply(mpg, cyl, mean))
sapply(mtcars, mean)
例如,这两个函数非常好,但是如何将它们组合起来以获取变量cyl的每个类别的每个变量的均值?
使用dplyr,这很简单:
mtcars %>%
group_by(cyl) %>%
summarise_all(mean)
对于dplyr来说,这似乎很容易。因此,也许另一个问题可能是,当dplyr使解决问题变得容易时,为什么甚至学习所有这些应用函数也很有用? :-)
答案 0 :(得分:0)
如果您正在寻找基本的R解决方案,则可以使用split
用cyl
分隔数据帧,然后像以前一样使用sapply
:
S <- split( mtcars, mtcars$cyl )
lapply( S, function(x) sapply(x, mean) )
您的第二个问题主要是基于观点的,因此我将为我提供:tidyverse
包,例如dplyr
,它们是在基本R功能的基础上构建的,以提供方便且一致的接口来进行常见数据操作操作。由于这个原因,它通常是可取的,但在特定的开发环境中可能并不总是可用。在后一种情况下,了解如何使用基本R功能很有帮助。