使用 apply family、aggregation 等多种功能

Posted

技术标签:

【中文标题】使用 apply family、aggregation 等多种功能【英文标题】:using of multiple functions using apply family, aggregation, with etc 【发布时间】:2015-05-03 22:20:40 【问题描述】:

我查了一下,发现了几个与这个问题相关的问题multiple functions in a single tapply or aggregate statement R Grouping functions: sapply vs. lapply vs. apply. vs. tapply vs. by vs. aggregate

实际上,我想知道在上述算法之一中使用多个函数的最佳方法是什么。

我试着举个例子

# make a simple matrix 
df <- matrix(data=rnorm(10), 10, 5)

# make a function which calculate several properties 
several <- function(x) 
      c(min = min(x), mean = mean(x), max = max(x), median =median(x), sum=sum(x))
   

# use one of the apply family 
apply(df,2, several)

你会怎么做?有没有其他方法可以使它更容易或更实用?

【问题讨论】:

你的dfmatrix 所以,apply 工作正常。如果您需要使用lapply,请将数据集转换为data.frame 其他选项是使用summarise_each from dplyr @akrun 你可以举个例子! 【参考方案1】:

each 包中的plyr 也可以为您解决问题:

library(plyr)
df <- matrix(data=rnorm(50), 10, 5)
aaply(df, 2, each(min, mean, max, median, sum)) 

如果您想要其他输入/输出格式,您可以使用dplyr 中的不同功能。

【讨论】:

以上是关于使用 apply family、aggregation 等多种功能的主要内容,如果未能解决你的问题,请参考以下文章

在R中运行apply函数时有没有办法打印迭代次数[关闭]

如何使用“命名聚合” [重复]

如何更新 pymongo

pandas使用apply函数:在dataframe数据行(row)上施加(apply)函数

pandas使用apply函数:在dataframe数据列(column)上施加(apply)函数

call和apply的使用