我试图在降低高值和低值后计算平均值。但以下忽略了修剪参数:
library(tidyverse)
mtcars %>%
summarize(mpg = mean(mpg),
mpg_trimmed = mean(mpg, trim = 0.05))
#> mpg mpg_trimmed
#> 1 20.09062 20.09062
Run Code Online (Sandbox Code Playgroud)
但以下工作:
library(tidyverse)
mtcars %>%
summarize(mpg = mean(.$mpg),
mpg_trimmed = mean(.$mpg, trim = 0.05))
#> mpg mpg_trimmed
#> 1 20.09062 19.95333
Run Code Online (Sandbox Code Playgroud)
为什么我需要使用.$?
因为您正在屏蔽原始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
Run Code Online (Sandbox Code Playgroud)