作者:zealyw | 来源:互联网 | 2022-12-05 16:52
1> Lyngbakr..:
这需要rlang
。首先,我创建一个数据框:
df <- data.frame(bar = runif(10))
# bar
# 1 0.549319057
# 2 0.351898657
# 3 0.326850457
# 4 0.951580599
# 5 0.712514111
# 6 0.425802253
# 7 0.240621368
# 8 0.002803366
# 9 0.471586186
# 10 0.387040517
接下来,我声明我的变量名和转换:
dep_var <- "foo"
tran_var <- "mean(bar)"
最后,我!!
用来取消引用创建的字符串paste
和来自的解析字符串parse_quosure
。
df %>% mutate(!!paste("t", dep_var, sep = "") := !!parse_quosure(tran_var))
# bar tfoo
# 1 0.549319057 0.4420017
# 2 0.351898657 0.4420017
# 3 0.326850457 0.4420017
# 4 0.951580599 0.4420017
# 5 0.712514111 0.4420017
# 6 0.425802253 0.4420017
# 7 0.240621368 0.4420017
# 8 0.002803366 0.4420017
# 9 0.471586186 0.4420017
# 10 0.387040517 0.4420017
编辑
查看文档后,它看起来像是parse_quosure
“已弃用”,因此以下内容可能是最新的:
df %>% mutate(!!paste("t", dep_var, sep = "") := !!parse_quo(tran_var, env = caller_env()))