Первая буква в верхний регистр
Есть ли другая версия, чтобы сделать первую букву каждого строкового капитала, а также с FALSE для flac perl?
name<-"hallo"
gsub("(^[[:alpha:]])", "\\U\\1", name, perl=TRUE)
Ответы
Ответ 1
Вы можете попробовать что-то вроде:
name<-"hallo"
paste(toupper(substr(name, 1, 1)), substr(name, 2, nchar(name)), sep="")
Или другой способ - иметь такую функцию:
firstup <- function(x) {
substr(x, 1, 1) <- toupper(substr(x, 1, 1))
x
}
Примеры:
firstup("abcd")
## [1] Abcd
firstup(c("hello", "world"))
## [1] "Hello" "World"
Ответ 2
Как указано в комментарии, теперь это можно сделать: stringr::str_to_title("iwejofwe asdFf FFFF")
stringr
использует stringi
под капотом, который заботится о сложной интернационализации, Unicode и т.д., вы можете сделать: stri_trans_totitle("kaCk, DSJAIDO, Sasdd.", opts_brkiter = stri_opts_brkiter(type = "sentence"))
Существует С или C++ библиотека под stringi
.
Ответ 3
для ленивого шрифта:
paste0(toupper(substr(name, 1, 1)), substr(name, 2, nchar(name)))
тоже сделает.
Ответ 4
Часто нам требуется только первая буква верхнего регистра, остальная часть строки нижнего регистра. В таком случае нам нужно сначала преобразовать всю строку в нижний регистр.
Вдохновленный ответом @alko989, функция будет выглядеть так:
firstup <- function(x) {
x <- tolower(x)
substr(x, 1, 1) <- toupper(substr(x, 1, 1))
x
}
Примеры:
firstup("ABCD")
## [1] Abcd
Другой вариант - использовать str_to_title
в пакете stringr
dog <- "The quick brown dog"
str_to_title(dog)
## [1] "The Quick Brown Dog"