используя select и stringr вместе - PullRequest
1 голос
/ 13 июля 2020

Я пытаюсь

qual %>% select(reasons_code) %>% str_replace('\\+.*',replacement = '')

, но получаю предупреждающее сообщение: In stri_replace_first_regex (string, pattern, fix_replacement (замена),: аргумент не является atomi c vector; принуждение.

Однако, когда я делаю следующее, замена работает нормально.

str_replace(qual$reasons_code,'\\+.*',replacement = '')

Кто-нибудь знает, почему это происходит?

1 Ответ

1 голос
/ 13 июля 2020

Для ?str_replace входной string является

строка - входной вектор. Либо вектор символов, либо что-то, что может быть приведено к единице.

, в то время как вывод select - это data.frame с одним выбранным столбцом. Он не преобразуется в vector. Вместо select мы можем pull столбец как vector, и он должен работать

library(dplyr)
qual %>%
      pull(reasons_code) %>%
      str_replace('\\+.*',replacement = '')

Или, если мы предпочитаем использовать код OP с select, есть несколько способов преобразования на vector - unlist это один из них

qual %>% 
    select(reasons_code) %>% 
    unlist %>%
    str_replace('\\+.*',replacement = '')
...