如何在 dplyr 字符串中使用变量代替 列名 ?例如,我想向虹膜数据集添加一列名为 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: use dynamic variable names 没有解决这个问题。重复回答这个问题:

不是我的问题:我该怎么做:
var = "sum"
head(iris %>% mutate(var = Sepal.Length + Sepal.Width))

最佳答案

我认为推荐的方法是使用 sym :

iris %>% mutate(sum = !!sym(x) + !!sym(y)) %>% head

关于r - 在 mutate() 中为列函数使用变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49623169/

10-12 14:01