大写的第一个字母

是否有其他版本,使每个字符串大写的第一个字母,也与 FALSE 为 flacperl?

name<-"hallo"
gsub("(^[[:alpha:]])", "\\U\\1", name, perl=TRUE)
76629 次浏览

你可以试试这样:

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"

懒惰的打字员:

  paste0(toupper(substr(name, 1, 1)), substr(name, 2, nchar(name)))

也行。

正如评论中指出的那样,现在可以这样做: : str _ to _ title (“ iwejofwe asdFF FFFF”)

stringr在底层使用 stringi来处理复杂的国际化、 unicode 等,您可以这样做: stri_trans_totitle("kaCk, DSJAIDO, Sasdd.", opts_brkiter = stri_opts_brkiter(type = "sentence"))

stringi下面有一个 C 或 C + + 库。

通常我们需要 只有的第一个字母大写,其余的字符串小写。在这种情况下,我们首先需要将整个字符串转换为小写。

受@alko989的启发,该函数将是:

firstup <- function(x) {
x <- tolower(x)
substr(x, 1, 1) <- toupper(substr(x, 1, 1))
x
}

例子:

firstup("ABCD")
## [1] Abcd

另一种选择是在 stringr包中使用 str_to_title

dog <- "The quick brown dog"
str_to_title(dog)
## [1] "The Quick Brown Dog"

stringr中,有 str_to_sentence()做类似的事情。这个问题还没有完全解决,但它解决了我的问题。

str_to_sentence(c("not today judas", "i love cats", "other Caps converteD to lower though"))
#> [1] "Not today judas"  "I love cats"  "Other caps converted to lower though"

我喜欢“整洁宇宙”的方式,使用字符串与一线

library(stringr)
input <- c("this", "is", "a", "test")
str_replace(input, "^\\w{1}", toupper)

结果:

[1] "This" "Is"   "A"    "Test"

我也在寻找这个问题的答案,但是答案没有考虑字符串以数字或符号开头的情况。另外,问题是: “使每个字符串的首字母大写”,而不是每个单词。

v = c("123.1 test test", "test", "test test", ". test")
stringr::str_replace(v, "([[:alpha:]])", toupper)
## [1] "123.1 Test test" "Test"            "Test test"       ". Test"