【发布时间】:2021-04-11 23:36:24
【问题描述】:
我发现通常在dplyr 中工作的数据屏蔽在与!! 运算符一起使用时停止工作。
考虑一个简单的例子。
trans <- list(
a = rlang::expr(val),
b = rlang::expr(val*2)
)
df <- data.frame(name = c("a", "b"), val = 2:3)
然后,我想使用我的列表 trans 根据来自 name 的值修改 val 列。然后,以下代码将无法正常工作。
library(dplyr)
df %>%
rowwise() %>%
mutate(val = !!trans[[ name ]])
似乎没有找到name。如果使用普通变量代替数据框中的name 列,则上面的代码将起作用。
我应该如何修改代码以使其按预期工作?谢谢。
【问题讨论】: