dataset %>% rename(!!vars) 在 R 中是什么意思?

What does dataset %>% rename(!!vars) mean in R?

我是R新手,所以在看一些R代码的时候,看不懂符号是什么意思,比如代码dataset %>% rename(!!vars)中的!!。 有人可以帮我吗?谢谢

来自 rlang 包的 bang bang 运算符 !! 强制对对象进行早期评估。在 tidyverse 系列包中,它用于在代码管道中启用变量替换。

aVariable <- sym("mpg")

library(dplyr)
mtcars %>% group_by(am) %>%
     summarise(mean = mean(!!aVariable))

...输出:

# A tibble: 2 x 2
     am  mean
* <dbl> <dbl>
1     0  17.1
2     1  24.4
> 

有关强制函数的更多详细信息,请阅读 rlang nse-force

Stataq,

对于一个新手来说,您已经误入歧途了。 !! 是非标准评估 (NSE) 的一部分。这是一个高级主题,在 Hadley Wickham 的 Advanced RMetaProgramming 部分中有介绍:https://adv-r.hadley.nz/metaprogramming.html

除非您通过其他计算机语言熟悉 NSE,否则您会发现它是一条陡峭的学习曲线。有没有你现在不明白就不能解决的问题 !! ?