(In R) Как разбить слова по регистру заголовка в строке типа «WeLiveInCA» на «We Live In CA», не разбивая аббревиатуры?
Я знаю, как разбить строку на каждую заглавную букву,но выполнение этого приведет к разделению инициализмов / аббревиатур, таких как CA
или USSR
или даже U.S.A.
, и мне нужно их сохранить.
Так что я думаю о некотором типе логики, например if a word in a string isn't an initialism then split the word with a space where a lowercase character is followed by an uppercase character
.
Мой фрагмент кода ниже разбивает слова с пробелами заглавными буквами, но разбивает инициализаторы, как CA
становится C A
нежелательно.
s <- "WeLiveInCA"
trimws(gsub('([[:upper:]])', ' \\1', s))
# "We Live In C A"
или другой пример ...
s <- c("IDon'tEatKittensFYI", "YouKnowYourABCs")
trimws(gsub('([[:upper:]])', ' \\1', s))
# "I Don't Eat Kittens F Y I" "You Know Your A B Cs"
Я бы хотел получить следующие результаты:
"We Live In CA"
#
"I Don't Eat Kittens FYI" "You Know Your ABCs"
Но это должно быть широко применимо (не только для моего примера)