使用mutale创建一个名为variable的新列

使用mutale创建一个名为variable的新列,r,dplyr,mutate,R,Dplyr,Mutate,最简单的示例:一个小数据框和一个变量,其中包含我要创建的新列的名称 df1 <- data.frame(ID = LETTERS[1:5], Q1 = sample(0:10, 5, replace=T), Q2 = sample(0:10, 5, replace=T) ) 及 但在这两种情况下,我都会收到一条错误消息: Error: unexpected '=' in: "df1 %>%

最简单的示例:一个小数据框和一个变量,其中包含我要创建的新列的名称

df1 <- data.frame(ID = LETTERS[1:5],
                  Q1  = sample(0:10, 5, replace=T),
                  Q2  = sample(0:10, 5, replace=T)
)

但在这两种情况下,我都会收到一条错误消息:

Error: unexpected '=' in:
"df1 %>%
    mutate(get(MY_NEW_COL) ="
对于一个非常常见的操作,正确的语法是什么。显然,我可以通过写作来做到这一点

df1%>% 变异(My_Col_Sum=Q1+Q2)

但是我确实想在一个非常可见的全局变量中定义列的名称,而真正的问题是将一个更复杂的公式分配给
My\u Col\u Sum

非常感谢


Thomas Philips

其语法是
!!我的新颜色:=

library(dplyr)
df1 %>% mutate(!!MY_NEW_COL := Q1 + Q2)

#  ID Q1 Q2 My_Col_Sum
#1  A  9  2         11
#2  B  0 10         10
#3  C  1  9         10
#4  D 10 10         20
#5  E  4  2          6

其语法是
!!我的新颜色:=

library(dplyr)
df1 %>% mutate(!!MY_NEW_COL := Q1 + Q2)

#  ID Q1 Q2 My_Col_Sum
#1  A  9  2         11
#2  B  0 10         10
#3  C  1  9         10
#4  D 10 10         20
#5  E  4  2          6

非常感谢。通过反复试验,我还发现{{MY{u NEW{u COL}:=Q1+Q2有效,但它似乎很旧,我不确定它是否已被使用。!!语法是公认的前进方向吗?我认为
{}:=
都可以使用。谢谢。通过反复试验,我还发现{MY{u NEW COL}:=Q1+Q2有效,但它似乎很旧,我不确定它是否已被使用。使用!!语法是公认的前进方向吗?我认为
{}:=
!!
都可以使用。
Error: unexpected '=' in:
"df1 %>%
    mutate(get(MY_NEW_COL) ="
library(dplyr)
df1 %>% mutate(!!MY_NEW_COL := Q1 + Q2)

#  ID Q1 Q2 My_Col_Sum
#1  A  9  2         11
#2  B  0 10         10
#3  C  1  9         10
#4  D 10 10         20
#5  E  4  2          6