Мы проверяем наличие нескольких слов в строке, создаем логический индекс и изменяем только первый символ этих элементов на верхний регистр с sub
в base R
i1 <- grepl("\\s+", str1)
str1[i1] <- sub("^(.)", "\\U\\1", str1[i1], perl = TRUE)
str1
#[1] "DSL" "Fiber optic" "No" NA "Fiber optic"
или на основев этом примере мы можем непосредственно применить sub
к вектору, чтобы захватить один символ ((.)
) с начала (^
), и заменить его преобразованием в верхний регистр (\\U
), за которым следует обратная ссылка (* 1011)*) захваченной группы
sub("^(.)", "\\U\\1", str1, perl = TRUE)
#[1] "DSL" "Fiber optic" "No" NA "Fiber optic"
данные
str1 <- c("DSL" , "Fiber optic" , "No", NA, "fiber optic")