首页 > 解决方案 > 改变由转换为符号的字符串选择的列

问题描述

我正在尝试将小写字母作为我的数据集的一列

我写了一个基本的愚蠢函数

    library(dplyr)

    cleaning_tags<-function(data,col) 
    {
      data<-data%>%mutate(!!sym(col)=tolower(!!sym(col))) 
      return (data)

    }

其中 data 是 data.frame 和 column 是作为字符串的列名

我不知道我得到的错误

Error: unexpected '=' in "data%>%dplyr::mutate(!!sym("GROUPDSC") ="

操作员似乎工作正常,sym因为如果我想这样做

data%>%select(!!sym(col))

它选择所需的列。

谢谢。

标签: rdplyr

解决方案


:=在为列分配值时尝试使用

library(dplyr)
library(rlang)

cleaning_tags<-function(data,col)  {
    data %>% mutate(!!sym(col) := tolower(!!sym(col)))
}

df <- data.frame(a = c("ABC", "DEF"))
cleaning_tags(df, "a")

#    a
#1 abc
#2 def

推荐阅读