使用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