3 回答

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊
執(zhí)行大寫的基本R函數(shù)是toupper(x)
。從幫助文件中可以找到?toupper
您需要的功能:
simpleCap <- function(x) { s <- strsplit(x, " ")[[1]] paste(toupper(substring(s, 1,1)), substring(s, 2), sep="", collapse=" ")}name <- c("zip code", "state", "final count")sapply(name, simpleCap) zip code state final count "Zip Code" "State" "Final Count"
編輯適用于任何字符串,無論字?jǐn)?shù)如何:
simpleCap("I like pizza a lot")[1] "I Like Pizza A Lot"

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊
匹配從開頭^
或開頭后開始的正則表達(dá)式,[[:space:]]
后面跟一個(gè)字母字符[[:alpha:]]
。全局(gsub中的g)用匹配的開頭或空格以及匹配的字母字符的大寫版本替換所有這些出現(xiàn)\\1\\U\\2
。這必須使用perl風(fēng)格的正則表達(dá)式匹配來完成。
gsub("(^|[[:space:]])([[:alpha:]])", "\\1\\U\\2", name, perl=TRUE)# [1] "Zip Code" "State" "Final Count"
在替換參數(shù)的更多細(xì)節(jié)中gsub()
,\\1
說'使用x
匹配第一個(gè)子表達(dá)式的部分',即x
匹配的部分(^|[[:spacde:]])
。同樣,\\2
說使用x
匹配第二個(gè)子表達(dá)式的部分([[:alpha:]])
。的\\U
是使用支持語法perl=TRUE
和手段,使下一個(gè)字符大寫。因此對(duì)于“郵政編碼”,\\1
是“Zip”,\\2
是“代碼”,\\U\\2
是“代碼”,并且\\1\\U\\2
是“郵政編碼”。
該?regexp
頁面有助于理解正則表達(dá)式,?gsub
將事物放在一起。
- 3 回答
- 0 關(guān)注
- 676 瀏覽
添加回答
舉報(bào)