繁体   English   中英

在R中组合不同的套用功能

[英]Combine different apply functions in R

我真的很喜欢R中的应征家庭,但是我认为我仍然没有得到最好的帮助。

with(mtcars, tapply(mpg, cyl, mean))

sapply(mtcars, mean)

例如,这两个函数确实很不错,但是如何将它们组合起来以获取变量cyl的每个类别的每个变量的均值?

我猜用dplyr很简单:

mtcars %>%
    group_by(cyl) %>%
    summarise_all(mean)

对于dplyr来说,这似乎很容易。 因此,也许另一个问题可能是,当dplyr使解决问题变得容易时,为什么甚至学习所有这些应用函数也很有用? :-)

如果您正在寻找基本的R解决方案,则可以使用split通过cyl分隔数据帧,然后像以前一样使用sapply

S <- split( mtcars, mtcars$cyl )
lapply( S, function(x) sapply(x, mean) )

您的第二个问题主要是基于意见的,因此我将介绍tidyversetidyverse软件包,如dplyr ,是在基本R功能的基础上构建的,可为常见的数据操作提供方便且一致的界面。 由于这个原因,它通常是可取的,但在特定的开发环境中可能并不总是可用。 在后一种情况下,了解如何使用基本R功能很有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM