首页 > 解决方案 > 如何在 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 这样做的方式?

标签: rdplyr

解决方案


这行得通吗?

ddf %>% mutate(pr = !!sym(v))

这给出了您的示例中显示的相同输入:

a  b pr
1 10  1
2 11  2
3 12  3
4 13  4
5 14  5

推荐阅读