当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R substr 字符向量的子字符串


R语言 substr 位于 base 包(package)。

说明

提取或替换字符向量中的子字符串。

用法

substr(x, start, stop)
substring(text, first, last = 1000000L)

substr(x, start, stop) <- value
substring(text, first, last = 1000000L) <- value

参数

x , text

一个字符向量。

start , first

整数。要提取或替换的第一个元素。

stop , last

整数。要提取或替换的最后一个元素。

value

字符向量,必要时回收。

细节

substring 与 S 兼容,使用 firstlast 而不是 startstop 。对于向量参数,它循环地将参数扩展为最长的长度,前提是没有一个长度为零。

提取时,如果start大于字符串长度,则返回""

对于提取函数,xtext 将被 as.character 转换为字符向量(如果它还不是字符向量)。

对于替换函数,如果start大于字符串长度,则不进行替换。如果要替换的部分比替换字符串长,则仅替换字符串长度的部分。

如果任何参数是 NA 元素,则答案的相应元素是 NA

如果相应的输入具有声明的 Latin-1 或 UTF-8 编码并且当前区域设置是 Latin-1 或 UTF-8,则结果的元素将具有声明为当前区域设置的编码(请参阅 Encoding ) 。

如果输入元素已声明 "bytes" 编码(请参阅 Encoding ),则子集化将以字节为单位而不是字符为单位完成。

对于 substr ,与 x 具有相同长度和相同属性的字符向量(在可能的强制转换之后)。

对于 substring ,长度为参数中最长的字符向量。这将具有从 x 获取的名称(如果它有任何后强制,则根据需要重复),以及从 x 复制的其他属性(如果它是最长的参数)。

对于替换函数,与 xtext 长度相同的字符向量,并保留 attributes 例如 names

具有声明的编码的 xtext 的元素(请参阅 Encoding )将以相同的编码返回。

注意

substring<- 的 S 版本忽略 last ;这个版本没有。

这些函数通常与 nchar 一起使用来截断显示。这实际上不起作用(您想要限制宽度,而不是字符数,因此最好使用 strtrim ),但至少确保使用默认的 nchar(type = "chars")

例子

substr("abcdef", 2, 4)
substring("abcdef", 1:6, 1:6)
## strsplit() is more efficient ...

substr(rep("abcdef", 4), 1:4, 4:5)
x <- c("asfef", "qwerty", "yuiop[", "b", "stuff.blah.yech")
substr(x, 2, 5)
substring(x, 2, 4:6)

X <- x
names(X) <- LETTERS[seq_along(x)]
comment(X) <- noquote("is a named vector")
str(aX <- attributes(X))
substring(x, 2) <- c("..", "+++")
substring(X, 2) <- c("..", "+++")
X
stopifnot(x == X, identical(aX, attributes(X)), nzchar(comment(X)))

参考

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole. (substring.)

也可以看看

strsplitpastenchar

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Substrings of a Character Vector。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。