Изменить столбец, выбранный строкой, преобразованной в символ - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь сделать строчные буквы столбцом моего набора данных

Я написал простую глупую функцию

    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))

выберите нужный столбец.

Спасибо.

Ответы [ 2 ]

1 голос
/ 02 октября 2019

В вашем коде есть разные странные вещи. Функция ничего не возвращает (вы забыли вернуть data), вы не можете назначить имя нового столбца, как это, и код трудно прочитать.

library(tidyverse)

cleaning_tags<-function(data, col) {
  data %>% 
    mutate_at(col, toupper)
}

ir <- cleaning_tags(iris, "Species")
1 голос
/ 02 октября 2019

Попробуйте использовать := при назначении значений для столбца

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...