进入整洁的评估阶段,并希望将其应用于我当前的项目之一。
我知道您可以像这样定义表达式,以将其传递到tidyverse函数中,例如:
library(rlang)
library(tidyverse)
my.filter <- quo(species=='Human')
my.summary <- quo(mean(height, na.rm=T))
starwars %>%
filter(!!my.filter) %>%
summarise(!!my.summary)
但是,如果我想重命名汇总列怎么办?对Avg_Ht说?如果我在quo()函数中尝试这样做:
my.summary <- quo(Avg_Ht=mean(height, na.rm=T))
我被打中了
Error in quo(Avg_Ht = mean(height, na.rm = T)) :
unused argument (Avg_Ht = mean(height, na.rm = T))
这里有帮助吗?
谢谢!
答案 0 :(得分:5)
通读此github issue后,您似乎可以使用LinkedHashMap
和quos
来做到这一点。
我最初使用!!!
来分配名称
:=
但是事实证明这不是必需的。
my.summary <- quos(Avg_Ht := mean(height, na.rm=T))