R 将多个函数应用于单个数据对象-自定义摘要统计信息

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

我们如何在每列的基础上计算矩阵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_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)