chartr
位於 base
包(package)。 說明
翻譯字符向量中的字符,特別是從大寫到小寫,反之亦然。
用法
chartr(old, new, x)
tolower(x)
toupper(x)
casefold(x, upper = FALSE)
參數
x |
字符向量,或可以通過 |
old |
指定要翻譯的字符的字符串。如果提供長度為 2 或以上的字符向量,則使用第一個元素時會發出警告。 |
new |
指定翻譯的字符串。如果提供長度為 2 或以上的字符向量,則使用第一個元素時會發出警告。 |
upper |
邏輯:翻譯為大寫還是小寫? |
細節
chartr
將 old
中指定的 x
中的每個字符轉換為 new
中指定的相應字符。規範中支持範圍,但不支持字符類和重複字符。如果 old
包含的字符多於新字符,則會發出錯誤信號;如果它包含的字符較少,則忽略 new
末尾的多餘字符。
tolower
和 toupper
將字符向量中的大寫字符轉換為小寫字符,反之亦然。非字母字符保持不變。可以將多個字符映射到單個大寫字符。
casefold
是 tolower
和 toupper
的包裝,旨在與 S-PLUS 兼容。
值
與 x
具有相同長度和相同屬性的字符向量(在可能的強製轉換之後)。
如果相應的輸入具有已聲明的編碼並且當前區域設置為 Latin-1 或 UTF-8,則結果元素的編碼將聲明為當前區域設置的編碼(請參閱 Encoding
)。結果將采用當前區域設置的編碼,除非相應的輸入采用 UTF-8 或 Latin-1,而此時它將采用 UTF-8。
注意
這些函數與平台相關,通常使用操作係統服務。後者可能有很大缺陷,例如僅覆蓋 8 位語言環境中的 ASCII 字符。 ‘alphabetic’ 的定義取決於平台,並且可能會隨著時間的推移而更改,因為大多數平台都基於 frequently-updated Unicode 表。
例子
x <- "MiXeD cAsE 123"
chartr("iXs", "why", x)
chartr("a-cX", "D-Fw", x)
tolower(x)
toupper(x)
## "Mixed Case" Capitalizing - toupper( every first letter of a word ) :
.simpleCap <- function(x) {
s <- strsplit(x, " ")[[1]]
paste(toupper(substring(s, 1, 1)), substring(s, 2),
sep = "", collapse = " ")
}
.simpleCap("the quick red fox jumps over the lazy brown dog")
## -> [1] "The Quick Red Fox Jumps Over The Lazy Brown Dog"
## and the better, more sophisticated version:
capwords <- function(s, strict = FALSE) {
cap <- function(s) paste(toupper(substring(s, 1, 1)),
{s <- substring(s, 2); if(strict) tolower(s) else s},
sep = "", collapse = " " )
sapply(strsplit(s, split = " "), cap, USE.NAMES = !is.null(names(s)))
}
capwords(c("using AIC for model selection"))
## -> [1] "Using AIC For Model Selection"
capwords(c("using AIC", "for MODEL selection"), strict = TRUE)
## -> [1] "Using Aic" "For Model Selection"
## ^^^ ^^^^^
## 'bad' 'good'
## -- Very simple insecure crypto --
rot <- function(ch, k = 13) {
p0 <- function(...) paste(c(...), collapse = "")
A <- c(letters, LETTERS, " '")
I <- seq_len(k); chartr(p0(A), p0(c(A[-I], A[I])), ch)
}
pw <- "my secret pass phrase"
(crypw <- rot(pw, 13)) #-> you can send this off
## now ``decrypt'' :
rot(crypw, 54 - 13) # -> the original:
stopifnot(identical(pw, rot(crypw, 54 - 13)))
也可以看看
相關用法
- R character 字符向量
- R charmatch 部分字符串匹配
- R char.expand 相對於目標表展開字符串
- R chol2inv Cholesky(或 QR)分解的逆分解
- R chooseOpsMethod 選擇適當的操作方法
- R chol 喬列斯基分解
- R chkDots 警告調用者的“...”中存在無關參數
- R cumsum 累積和、乘積和極值
- R col 列索引
- R c 將值組合到向量或列表中
- R conditions 狀況處理和恢複
- R cut 將數字轉換為因子
- R class 對象類
- R connections 操作連接的函數(文件、URL...)
- R comment 查詢或設置“評論”屬性
- R complex 複數和基本函數
- R colSums 形成行和列的總和及平均值
- R commandArgs 提取命令行參數
- R cbind 按行或列組合 R 對象
- R crossprod 矩陣叉積
- R curlGetHeaders 從 URL 中檢索標頭
- R cat 連接並打印
- R capabilities 此 R 版本的報告函數
- R callCC 調用當前延續
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Character Translation and Casefolding。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。