在多列上使用函数
use function on multiple columns
我创建了这个函数来计算均值、中位数和标准差:
f1<- function(x) c(mean= round(mean(x),2), median= round(median(x),2), sd= round(sd(x),2))
我想将它用于多个列(列名:域 1、域 2、域 3、总计)
我想知道如何使用该函数,您能推荐一种比使用函数更好的方法来表示均值、中位数和标准偏差吗?
您可以使用 sapply
将 f1
函数应用于多个列。
f1<- function(x) c(mean= round(mean(x),2), median= round(median(x),2), sd= round(sd(x),2))
cols <- c('mpg', 'cyl')
sapply(mtcars[cols], f1)
# mpg cyl
#mean 20.09 6.19
#median 19.20 6.00
#sd 6.03 1.79
使用dplyr
:
mtcars %>%
summarise(across(c(mpg, cyl), list(mean = mean, sd = sd, median = median)))
# mpg_mean mpg_sd mpg_median cyl_mean cyl_sd cyl_median
#1 20.09062 6.026948 19.2 6.1875 1.785922 6
使用collapse
library(collapse)
dapply(slt(mtcars, 1:2), FUN = function(x) c(Mean = fmean(x),
Median = fmedian(x), SD = fsd(x)))
# mpg cyl
#Mean 20.090625 6.187500
#Median 19.200000 6.000000
#SD 6.026948 1.785922
我创建了这个函数来计算均值、中位数和标准差:
f1<- function(x) c(mean= round(mean(x),2), median= round(median(x),2), sd= round(sd(x),2))
我想将它用于多个列(列名:域 1、域 2、域 3、总计)
我想知道如何使用该函数,您能推荐一种比使用函数更好的方法来表示均值、中位数和标准偏差吗?
您可以使用 sapply
将 f1
函数应用于多个列。
f1<- function(x) c(mean= round(mean(x),2), median= round(median(x),2), sd= round(sd(x),2))
cols <- c('mpg', 'cyl')
sapply(mtcars[cols], f1)
# mpg cyl
#mean 20.09 6.19
#median 19.20 6.00
#sd 6.03 1.79
使用dplyr
:
mtcars %>%
summarise(across(c(mpg, cyl), list(mean = mean, sd = sd, median = median)))
# mpg_mean mpg_sd mpg_median cyl_mean cyl_sd cyl_median
#1 20.09062 6.026948 19.2 6.1875 1.785922 6
使用collapse
library(collapse)
dapply(slt(mtcars, 1:2), FUN = function(x) c(Mean = fmean(x),
Median = fmedian(x), SD = fsd(x)))
# mpg cyl
#Mean 20.090625 6.187500
#Median 19.200000 6.000000
#SD 6.026948 1.785922