r - 如何在 dplyr mutate experssions 中包含字符串?
问题描述
这是我想要的结果
ddf = data.frame(a=1:5,b = 10:14)
ddf %>% mutate(pr = a)
但是,我想要一个字符串变量
v = 'a'
来替换 mutate 中的 'a'。就像是:
ddf %>% mutate(pr = v)
上面的表达式没有做我想要的,我想知道是否还有其他可以工作的东西。
我能做到这一点的唯一方法是
ddf = data.frame(a=1:5,b = 10:14)
v = 'a'
expr=paste0('ddf %>% mutate(pr = ',v,')')
eval(parse(text=expr))
有没有“真正的” dplyr 这样做的方式?
解决方案
这行得通吗?
ddf %>% mutate(pr = !!sym(v))
这给出了您的示例中显示的相同输入:
a b pr
1 10 1
2 11 2
3 12 3
4 13 4
5 14 5