R 中是否有连接 tapply 和 round 的函数?

Is there a function in R to connect tapply with round?

可能解决方案很简单,但我现在找不到。我喜欢在描述性统计分析中使用 tapply。例如:

tapply(dataframe1$Means, dataframe2$gender, function(x) {
  c(
    "mean" = mean(x, na.rm = TRUE),
    "sd" = sd(x, na.rm = TRUE),
    "med" = median(x, na.rm = TRUE),
    "min" = min(x, na.rm = TRUE),
    "max" = max(x, na.rm = TRUE)
  )
})

现在我想将结果直接四舍五入到两个地方,但不将它们写入另一个或新对象。

感谢提示

是您要找的吗?我在汇总函数组周围添加了 round(c(...), digits = 2)(均值、sd、),因此该函数在 tapply 内进行舍入而不创建新对象。

编辑:没有重复 round() 功能的更好版本。

tapply(iris$Sepal.Length, iris$Species, 
       function(x){round(c("mean" = mean(x, na.rm = TRUE),
                     "sd" = sd(x, na.rm = TRUE), 
                     "med" = median(x, na.rm = TRUE), 
                     "min" = min(x, na.rm = TRUE), 
                     "max"= max(x, na.rm = TRUE)), digits = 2)})
#> $setosa
#> mean   sd  med  min  max 
#> 5.01 0.35 5.00 4.30 5.80 
#> 
#> $versicolor
#> mean   sd  med  min  max 
#> 5.94 0.52 5.90 4.90 7.00 
#> 
#> $virginica
#> mean   sd  med  min  max 
#> 6.59 0.64 6.50 4.90 7.90

reprex package (v2.0.1)

于 2022-05-10 创建