R 将多个函数应用于单个数据对象-自定义摘要统计信息
我们如何在每列的基础上计算矩阵M的描述性汇总统计,包括平均值、标准偏差和5%、25%、50%、75%和95%分位数 以下是我将如何独立地为不同的汇总统计数据执行此操作:R 将多个函数应用于单个数据对象-自定义摘要统计信息,r,R,我们如何在每列的基础上计算矩阵M的描述性汇总统计,包括平均值、标准偏差和5%、25%、50%、75%和95%分位数 以下是我将如何独立地为不同的汇总统计数据执行此操作: library(magrittr) s_1 = M %>% apply(.,2, mean) s_2 = M %>% apply(.,2, sd) s_3 = M %>% apply(.,2, quantiles, c(0.05,0.25,0.5,0.75,0.95)) result = cbind(s
library(magrittr)
s_1 = M %>% apply(.,2, mean)
s_2 = M %>% apply(.,2, sd)
s_3 = M %>% apply(.,2, quantiles, c(0.05,0.25,0.5,0.75,0.95))
result = cbind(s_1, s_2, s_3)
理想情况下,我希望将此功能包装成一个简单易懂且易于维护的函数。我们可以使用dplyr实现这一点
数据
我们可以用dplyr来实现这一点
数据
下面是base R中的一个自定义函数,可以实现这一点。构建和更改这些数据非常简单,以适应您想要的任何数据:
myStats <- function(x) {
myMean <- mean(x)
mySd <- sd(x)
myQuantiles <- quantile(x, probs=c(0.05,0.25,0.5,0.75,0.95))
return(c(mean=myMean, sd=mySd, myQuantiles))
}
下面是base R中的一个自定义函数,可以实现这一点。构建和更改这些数据非常简单,以适应您想要的任何数据:
myStats <- function(x) {
myMean <- mean(x)
mySd <- sd(x)
myQuantiles <- quantile(x, probs=c(0.05,0.25,0.5,0.75,0.95))
return(c(mean=myMean, sd=mySd, myQuantiles))
}
M%apply.,2,myStats->将函数应用于矩阵的每一列。M%apply.,2,myStats->将函数应用于矩阵的每一列。
myStats <- function(x) {
myMean <- mean(x)
mySd <- sd(x)
myQuantiles <- quantile(x, probs=c(0.05,0.25,0.5,0.75,0.95))
return(c(mean=myMean, sd=mySd, myQuantiles))
}
# get some data
set.seed(1234)
x <- rnorm(100)
myStats(x)
mean sd 5% 25% 50% 75% 95%
-0.1567617 1.0044053 -1.3935761 -0.8953272 -0.3846280 0.4712061 1.7095200
sapply(df[,-c(1,2)], myStats)