我如何使用变量来代替列名在 dplyr 字符串中?举个例子,我想向 iris 数据集添加一列,称为 sum,它是 Sepal.Length 和 Sepal.Width 的总和。简而言之,我想要以下代码的工作版本。
x = "Sepal.Length"
y = "Sepal.Width"
head(iris%>% mutate(sum = x+y))
目前,运行代码会输出“求值错误:二元运算符的非数字参数”,因为 R 将 x 和 y 求值为字符向量。我该如何让 R 将 x 和 y 评估为数据框的列名称?我知道答案是使用某种形式的惰性求值,但我很难弄清楚如何配置它。
请注意,建议的重复项:dplyr - mutate:使用动态变量名称没有解决这个问题。副本回答了这个问题:
不是我的问题: 我该怎么做:
var = "sum"
head(iris %>% mutate(var = Sepal.Length + Sepal.Width))
我认为推荐的方法是使用sym
:
iris %>% mutate(sum = !!sym(x) + !!sym(y)) %>% head
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)