【发布时间】:2018-11-01 17:53:21
【问题描述】:
我真的很喜欢 R 中的 apply-family,但我认为我仍然没有充分利用它。
with(mtcars, tapply(mpg, cyl, mean))
sapply(mtcars, mean)
例如,这两个函数非常好,但是我怎样才能将它们结合起来以获得变量 cyl 的每个类别的每个变量的平均值?
使用 dplyr 我猜这很容易:
mtcars %>%
group_by(cyl) %>%
summarise_all(mean)
对于 dplyr,这似乎很容易。所以也许另一个问题可能是,当 dplyr 可以轻松解决问题时,为什么学习所有这些应用函数很有用? :-)
【问题讨论】:
-
显然这是基于意见的,但我非常喜欢
purrr包的接口,而不是 base-R 应用系列功能。sapply、mapply和lapply的记忆方式各不相同,而map_*函数的界面一致,所以你只需要学习一种方式。
标签: r dplyr apply lapply tapply