Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在dplyr::mutate中将字符串作为变量名传递_R_Dplyr - Fatal编程技术网

在dplyr::mutate中将字符串作为变量名传递

在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

我一直在读关于如何使用dplyr中变量的字符串引用的SO帖子

我想根据字符串输入对现有列进行变异:

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)