Использование заглавных букв в R с исключениями - PullRequest
1 голос
/ 05 мая 2020

Как вы можете использовать данные в R, кроме добавления границ?

Например:

Дан список городов и штатов в форме: «НЬЮ-ЙОРК, Нью-Йорк» Его необходимо изменить на: «Нью-Йорк, Нью-Йорк»

Функция str_to_title изменяет его на «New York, Ny».

Шаблоны: WASHINGTON, DC AMHERST, MA HANOVER, NH DAVIDSON, NC BRUNSWICK, ME GREENVILLE, SC PORTLAND, OR LOUISVILLE, KY

Все они должны иметь следующий вид: Амхерст, Массачусетс или Брансуик, Мэн

1 Ответ

1 голос
/ 05 мая 2020

Мы могли бы использовать обратный поиск с отрицательным регулярным выражением, чтобы сопоставить буквы верхнего регистра, которые не следуют за , и пробелом , захватить как группу ((...)), в замене указать обратную ссылку захваченной группы (\\1, \\2) при преобразовании второй группы в более низкую (\\L)

gsub("(?<!, )([A-Z])([A-Z]+)\\b", "\\1\\L\\2", str1, perl = TRUE)
#[1] "New York, NY"   "Washington, DC" "Amherst, MA"    "Hanover, NH" 
#[5]  "Davidson, NC"   "Brunswick, ME" 
#[7] "Greenville, SC" "Portland, OR"   "Louisville, KY"

data

str1 <- c("NEW YORK, NY", "WASHINGTON, DC", "AMHERST, MA", "HANOVER, NH", 
  "DAVIDSON, NC", "BRUNSWICK, ME", "GREENVILLE, SC", "PORTLAND, OR", 
 "LOUISVILLE, KY")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...