r - 除非我使用奇怪的语法,否则为什么平均值会忽略修剪参数?

标签 r dplyr

我正在尝试在删除高值和低值后计算平均值。但以下忽略了修剪参数:

library(tidyverse)
mtcars %>% 
  summarize(mpg = mean(mpg),
            mpg_trimmed = mean(mpg, trim = 0.05))
#>        mpg mpg_trimmed
#> 1 20.09062    20.09062

但以下方法有效:

library(tidyverse)
mtcars %>% 
  summarize(mpg = mean(.$mpg),
            mpg_trimmed = mean(.$mpg, trim = 0.05))
#>        mpg mpg_trimmed
#> 1 20.09062    19.95333

为什么我需要使用.$

最佳答案

因为您屏蔽原始mpg变量(在函数范围内创建另一个变量)。指定一个不同的名称,例如 mpg_mean。请记住,dplyr 使新创建的变量可以立即访问。

library(dplyr)

mtcars %>% 
  summarize(mpg_mean = mean(mpg),
            mpg_trimmed = mean(mpg, trim = 0.05))
#>   mpg_mean mpg_trimmed
#> 1 20.09062    19.95333

关于r - 除非我使用奇怪的语法,否则为什么平均值会忽略修剪参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61936771/

相关文章:

r - 如何最小化 "lm"类对象的大小而不影响将其传递给 predict()

performance - 最有效的 R 余弦计算

r - groupby 后在多列中应用不同的功能

r - 创建一个包含列名称的新变量,以防值不为 NA

基于向量 new_varname、old_varname 重命名 dplyr 中的变量名称

r - R中没有重复的组合

r - 使用系统命令打开具有特定路径的 Windows 资源管理器

r - 根据用户输入选择fillColor

R:写入 CSV 并通过管道继续

r - 如何使用 lower.tri 中的匹配整数填充矩阵的 upper.tri?