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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。