使用 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)
你会怎么做?有没有其他方法可以使它更容易或更实用?
【问题讨论】:
你的df
是matrix
所以,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 等多种功能的主要内容,如果未能解决你的问题,请参考以下文章
pandas使用apply函数:在dataframe数据行(row)上施加(apply)函数