在dplyr::mutate中将字符串作为变量名传递
我一直在读关于如何使用dplyr中变量的字符串引用的SO帖子 我想根据字符串输入对现有列进行变异:在dplyr::mutate中将字符串作为变量名传递,r,dplyr,R,Dplyr,我一直在读关于如何使用dplyr中变量的字符串引用的SO帖子 我想根据字符串输入对现有列进行变异: var <- 'vs' my_mtcars <- mtcars %>% mutate(get(var) = factor(get(var))) var在评估(!!)和使用到symbol的转换并在分配的rhs上评估时,可以使用:=执行此操作 library(dplyr) my_mtcars <- mtcars %>% mutate(!! var
var <- 'vs'
my_mtcars <- mtcars %>%
mutate(get(var) = factor(get(var)))
var在评估(!!
)和使用到sym
bol的转换并在分配的rhs上评估时,可以使用:=
执行此操作
library(dplyr)
my_mtcars <- mtcars %>%
mutate(!! var := factor(!! rlang::sym(var)))
class(my_mtcars$vs)
#[1] "factor"
在评估(!!
)时,可以使用:=
执行此操作,并使用到sym
bol的转换,在分配的右侧进行评估
library(dplyr)
my_mtcars <- mtcars %>%
mutate(!! var := factor(!! rlang::sym(var)))
class(my_mtcars$vs)
#[1] "factor"
谢谢你。是否以与读取管道运算符“and then”相同的方式将:=
读取为“update”?@DougFir它是一个赋值运算符(与data.table中使用的运算符类似,但行为不同)。此赋值运算符在lhs和RHSMAYE上进行求值。我们也可以使用{{}
,但不确定如何使用它来捕获var
,并将其用于命名。谢谢。是否以与读取管道运算符“and then”相同的方式将:=
读取为“update”?@DougFir它是一个赋值运算符(与data.table中使用的运算符类似,但行为不同)。这个赋值运算符在lhs和RHSMAYE上进行求值。我们也可以使用{{}
,但不确定如何使用它来捕获var
,并将其用于命名。
library(dplyr)
my_mtcars <- mtcars %>%
mutate(!! var := factor(!! rlang::sym(var)))
class(my_mtcars$vs)
#[1] "factor"
my_mtcars2 <- mtcars %>%
mutate_at(vars(var), factor)