r - utilizar la función en múltiples columnas

CorePress2024-01-25  11

He creado esta función para calcular la media, la mediana y la DE:

f1<- function(x) c(mean= round(mean(x),2), median= round(median(x),2), sd= round(sd(x),2))

Quiero usarlo para varias columnas (nombres de las columnas: dominio 1, dominio2, dominio3, total)

Quiero saber cómo usar la función. ¿Me recomendarías una forma mejor que usar una función para presentar la media, la mediana y la desviación estándar?



------------------------------------

Puedes utilizar sapply para aplicar la función f1 a varias columnas.

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

Usando 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



------------------------------------

Usar el colapso

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

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare