Подтвердить что ты не робот

Первая буква в верхний регистр

Есть ли другая версия, чтобы сделать первую букву каждого строкового капитала, а также с FALSE для flac perl?

name<-"hallo"
gsub("(^[[:alpha:]])", "\\U\\1", name, perl=TRUE)
4b9b3361

Ответ 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"