【问题标题】:Apply multiple functions within a single function to a DataFrame将单个函数中的多个函数应用于 DataFrame
【发布时间】:2020-08-11 15:44:28
【问题描述】:

我目前已经写了这段代码

X1<-c(8.7, 14.3, 18.9, 19.0, 20.5, 14.7, 18.8, 37.3, 12.6, 25.7)
X2<-c(0.3, 0.9, 1.8, 0.8, 0.9, 1.1, 2.5, 2.7, 1.3, 3.4)
X3<-c(3.1, 7.4, 9.0, 9.4, 8.3, 7.6, 12.6, 18.1, 5.9, 15.9)

df<-data.frame(x1=X1,x2=X2,x3=X3)

multi.fun <- function(x) {
  c(media = mean(x), desv.tip = sd(x), fischer = sum((x-mean(x))^3)/(nrow(df)*(sd(x))^3))
}

sapply(df, multi.fun)

我得到了:

                 x1        x2        x3
media    19.0500000 1.5700000 9.7300000
desv.tip  7.9560250 0.9967168 4.5660705
fischer   0.9549109 0.5209099 0.4954127

我的问题是我是否可以将 'sapply' 函数嵌入到 'multi.fun' 函数中,从而获得单个函数?

【问题讨论】:

    标签: r function dataframe sapply


    【解决方案1】:

    我们可以将sapply 放在函数中,并将数据集作为参数传递

    multi.fun <- function(dat) {
      sapply(dat, function(x) c(media = mean(x), desv.tip = sd(x), 
               fischer = sum((x-mean(x))^3)/(nrow(dat)*(sd(x))^3)))
      }
    
    multi.fun(df)
    #                 x1        x2        x3
    #media    19.0500000 1.5700000 9.7300000
    #desv.tip  7.9560250 0.9967168 4.5660705
    #fischer   0.9549109 0.5209099 0.4954127
    

    【讨论】:

      猜你喜欢
      • 2017-01-21
      • 1970-01-01
      • 2017-12-09
      • 2021-05-26
      • 2015-08-14
      • 2018-11-27
      • 2016-11-29
      • 2020-05-11
      • 2015-06-19
      相关资源
      最近更新 更多