применить strsplit к нескольким столбцам - PullRequest
0 голосов
/ 12 декабря 2018

Я хочу избавиться от дубликатов в строках, разделенных запятыми.

Работает для одного столбца, используя:

df$column  <- sapply(strsplit(df$column, ",", fixed = TRUE), function(x) 
                                           paste(unique(x), collapse = ","))

Когда я пытаюсь использовать его в нескольких столбцахЯ всегда получаю сообщение об ошибке «аргумент не является символом».

1 Ответ

0 голосов
/ 12 декабря 2018

Нам нужно заключить в as.character, если столбец равен factor

sapply(strsplit(as.character(df$column), ",", fixed = TRUE),
      function(x) paste(unique(x), collapse = ","))

Для применения к нескольким столбцам выполните цикл по интересующим столбцам, примените ту же функцию и обновите выводк интересующим колоннам

colsOfInterest <- c('column1', 'column2')
df[colsOfInterest] <- lapply(df[colsOfInterest], function(x) 
  sapply(strsplit(as.character(x), ",", fixed = TRUE),
       function(y) paste(unique(y), collapse=",")))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...