Однако должен быть какой-то симпатичный способ сделать это, один из способов - разделить каждое слово и опустить все символы слова, кроме первого, а затем paste
строку назад.
paste0(sapply(strsplit(text, " ")[[1]], function(x)
paste0(substr(x, 1, 1),tolower(substr(x, 2, nchar(x))))), collapse = " ")
#[1] "This String Is a test. Trying To find a way to do This."
Подробное пошаговое объяснение:
strsplit(text, " ")[[1]]
#[1] "This" "String" "IS" "a" "tESt." "TRYING" "TO" "fINd"
# [9] "a" "waY" "to" "do" "ThiS."
sapply(strsplit(text, " ")[[1]], function(x)
paste0(substr(x, 1, 1),tolower(substr(x, 2, nchar(x)))))
# This String IS a tESt. TRYING TO fINd
# "This" "String" "Is" "a" "test." "Trying" "To" "find"
# a waY to do ThiS.
# "a" "way" "to" "do" "This."
paste0(sapply(strsplit(text, " ")[[1]], function(x)
paste0(substr(x, 1, 1),tolower(substr(x, 2, nchar(x))))), collapse = " ")
#[1] "This String Is a test. Trying To find a way to do This."