當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。