Данная строка:
words <- c("fauuucet water", "tap water")
Я хотел бы применить функцию toupper
ко всем словам, которые содержат u
.
Желаемые результаты
res <- c("FAUUCET water", "tap water")
Функция
change_u_case <- function(str) {
sapply(
X = str,
FUN = function(search_term) {
sapply(
X = strsplit(search_term, split = "\\s", perl = TRUE),
FUN = function(word) {
if (grepl(pattern = "u", x = word)) {
toupper(word)
}
}
,
USE.NAMES = FALSE
)
},
USE.NAMES = FALSE
)
}
Тесты
change_u_case(words) -> tst_res
words
tst_res
unlist(tst_res)
Примечания
- В частности, меня интересует решение с использованием одного
rapply
вызов может быть построен rlist::list.iter
подход был бы также интересен - Выбор слов, содержащих u символ является примером, на практике я хотел бы применить различные условия, отражающие длину и т. д.