是否有其他版本,使每个字符串大写的第一个字母,也与 FALSE 为 flacperl?
name<-"hallo" gsub("(^[[:alpha:]])", "\\U\\1", name, perl=TRUE)
你可以试试这样:
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”)
: str _ to _ title (“ iwejofwe asdFF FFFF”)
stringr在底层使用 stringi来处理复杂的国际化、 unicode 等,您可以这样做: stri_trans_totitle("kaCk, DSJAIDO, Sasdd.", opts_brkiter = stri_opts_brkiter(type = "sentence"))
stringr
stringi
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
str_to_title
dog <- "The quick brown dog" str_to_title(dog) ## [1] "The Quick Brown Dog"
在 stringr中,有 str_to_sentence()做类似的事情。这个问题还没有完全解决,但它解决了我的问题。
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"