Я занимаюсь чисткой строк в названиях компаний и хотел бы сделать две вещи:
- Заменить символ амперсанда (&) на 'and'.
- Объедините строки, окружающие &, , но только эти элементы, а не всю строку
Вот то, что я пытался далеко, но вывод по какой-то причине не векторизуется.
library(stringr)
library(dplyr)
test <- tibble(name = c("brady & frank mortgage bank", "joe and sons deli"))
new <- test %>%
mutate(clean = paste(str_split(name, "\\s+")[[1]][grep("&|and", str_split(name, "\\s+")[[1]]) - 1],
str_split(name, "\\s+")[[1]][grep("&|and", str_split(name, "\\s+")[[1]]) + 1], sep = "and"))
Вот результат этого:
|name |clean |
|:---------------------------|:-------------|
|brady & frank mortgage bank |bradyandfrank |
|joe and sons deli |bradyandfrank |
Я каким-то образом знаю, что clean
var ссылается на первый элемент, но я не уверен, почему он не векторизован.
Вот мой желаемый результат:
|name |clean |
|:---------------------------|:-------------|
|brady & frank mortgage bank |bradyandfrank |
|joe and sons deli |joeandsons |
Спасибо!