Я хочу заменить целые строковые записи в данных на основе частичных совпадений, используя функции из пакета stringr
.
Единственный метод, который я пробовал, - это замена точных совпадений с помощью str_replace_all()
, но это становится утомительным и громоздким, когда есть десятки вариантов, которые нужно исправить.Я ищу заменить на основе частичных совпадений.В моем следующем разделе я заменяю варианты «испанец» и «колумбиец» по прямой спецификации.Тем не менее, я хотел бы выполнить эти замены на основе чего-то вроде выполнения условия, что в словах есть «Spa» или «Col».
library(tidyverse)
library(stringr)
data <- c(
"Spanish",
"SPANIARD",
"Spainiard",
"Colombian",
"Columbian",
"Ecuador",
"Equador",
"Ecuadorian",
"VENEZUELAN"
)
str_replace_all(data,
c(
"Spanish" = "Spaniard",
"SPANIARD" = "Spaniard",
"Spainiard" = "Spaniard",
"Columbian" = "Colombian"
))
#> [1] "Spaniard" "Spaniard" "Spaniard" "Colombian" "Colombian"
#> [6] "Ecuador" "Equador" "Ecuadorian" "VENEZUELAN"
Создано в 2019-05-21 представьте пакет (v0.2.1)
Так что str_replace_all()
работает как рекламируется, но я ищу способ упростить этот процесс в Tidyverse.Любая помощь очень ценится.