abbreviate
位于 base
包(package)。 说明
将字符串缩写为至少 minlength
字符,以便它们保持唯一(如果它们是),除非 strict = TRUE
。
用法
abbreviate(names.arg, minlength = 4, use.classes = TRUE,
dot = FALSE, strict = FALSE,
method = c("left.kept", "both.sides"), named = TRUE)
参数
names.arg |
要缩写的名称的字符向量,或由 |
minlength |
缩写的最小长度。 |
use.classes |
逻辑:应该先删除小写字符吗? |
dot |
逻辑:应该添加一个点( |
strict |
逻辑:是否应该严格遵守 |
method |
指定与默认 |
named |
逻辑:应该返回 |
细节
使用的默认算法 ( method = "left.kept"
) 与 S 的算法类似。对于单个字符串,其工作原理如下。字符串末尾的第一个空格被删除。然后(如果需要)任何其他空格都会被删除。接下来,删除小写元音,然后删除小写辅音。最后,如果缩写仍然长于minlength
,则大写字母和符号将被删除。
字符总是首先从字符串末尾剥离。如果 names.arg
的某个元素包含多个单词(单词之间用空格分隔),则每个单词至少会保留一个字母。
缺失 (NA
) 值保持不变。
如果use.classes
是FALSE
,则唯一的区别是字母和空格之间。
值
一个字符向量,其中第一个参数中包含字符串的缩写。原始 names.arg
中的重复项将被赋予相同的缩写。如果任何非重复元素具有相同的 minlength
缩写,则如果 method =
"both.sides"
将基本内部 abbreviate()
算法应用于按字符反转的字符串;如果仍然存在重复的缩写,并且默认情况下为 strict = FALSE
,则 minlength
会递增 1,并且仅为这些元素找到新缩写。重复此过程,直到 names.arg
的所有唯一元素都具有唯一缩写。
如果 names
为 true,则 names.arg
的字符版本将作为 names
属性附加到返回值:不保留其他属性。
如果输入元素包含非 ASCII 字符,则相应的值将采用 UTF-8 格式并如此标记(请参阅 Encoding
)。
警告
如果use.classes
是 true (默认值),这实际上只适用于英语,并且之前R3.3.0 无法在多字节语言环境中正确处理非 ASCII 字符。如果与非 ASCII 字符一起使用(并且需要减少长度),它将发出警告。它不太可能与不在 Unicode 基本多语言平面中的输入以及在宽字符未以 Unicode 编码的(罕见)平台上良好地配合。
来自R3.3.0 ‘vowel’ 的概念是从英语元音扩展而来,包括小写英语元音的重音版本字符(包括“带有笔划的 o”)。当然,有些语言(甚至是威尔士语等西欧语言)也有其他元音。
例子
x <- c("abcd", "efgh", "abce")
abbreviate(x, 2)
abbreviate(x, 2, strict = TRUE) # >> 1st and 3rd are == "ab"
(st.abb <- abbreviate(state.name, 2))
stopifnot(identical(unname(st.abb),
abbreviate(state.name, 2, named=FALSE)))
table(nchar(st.abb)) # out of 50, 3 need 4 letters :
as <- abbreviate(state.name, 3, strict = TRUE)
as[which(as == "Mss")]
## and without distinguishing vowels:
st.abb2 <- abbreviate(state.name, 2, FALSE)
cbind(st.abb, st.abb2)[st.abb2 != st.abb, ]
## method = "both.sides" helps: no 4-letters, and only 4 3-letters:
st.ab2 <- abbreviate(state.name, 2, method = "both")
table(nchar(st.ab2))
## Compare the two methods:
cbind(st.abb, st.ab2)
也可以看看
substr
。
相关用法
- R apply 在数组边距上应用函数
- R as.Date 日期与字符之间的转换函数
- R agrep 近似字符串匹配(模糊匹配)
- R append 向量合并
- R assignOps 赋值运算符
- R as.POSIX* 日期时间转换函数
- R asplit 按边距分割数组/矩阵
- R attributes 对象属性列表
- R all.equal 测试两个对象是否(几乎)相等
- R aperm 数组转置
- R args 函数的参数列表
- R attr 对象属性
- R array2DF 将数组转换为 DataFrame
- R autoload 按需加载包
- R attach 将一组 R 对象附加到搜索路径
- R all.names 查找表达式中的所有名称
- R as.environment 强制环境对象
- R as.function 将对象转换为函数
- R assign 为名称分配值
- R any 有些值是真的吗?
- R array 多路阵列
- R as.data.frame 强制数据帧
- R all 所有的值都是真的吗?
- R file.path 构造文件路径
- R grep 模式匹配和替换
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Abbreviate Strings。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。