我一直在阅读这个SO帖子,学习如何在dplyr中使用字符串引用变量。
我想根据字符串输入来修改已有的列:
var <- 'vs'
my_mtcars <- mtcars %>%
mutate(get(var) = factor(get(var)))
错误:在以下代码中出现意外的“=”符号:
"my_mtcars <- mtcars %>% mutate(get(var) ="
也尝试过:
my_mtcars <- mtcars %>%
mutate(!! rlang::sym(var) = factor(!! rlang::symget(var)))
这导致了完全相同的错误信息。
如何基于将字符串“vs”传递到变量中来执行以下操作?在mutate中进行处理?
# works
my_mtcars <- mtcars %>%
mutate(vs = factor(vs))
:=
时,是否可以像读取管道操作符为“然后”一样将其读取为“更新”? - Doug Fir{{}}
,但不确定如何使用它来捕获var
并将其用于命名。 - NelsonGonmtcars %>% mutate("{x}" := factor(!! rlang::sym(x)))
可行,参见vignette("programming", "dplyr")
。但我不确定如何替换factor(!! rlang::sym(x))
。@akrun 你知道是否可以/应该使用{{}}
来替代右侧的!!
吗? - JWilliman