你能帮忙理解regexpr的输出吗?我只关心与文本位置有关的值,即下面的10。但是它显示了两个值,即10和4。如何仅捕获数字10。
这个输出是数字向量吗?
text<-"World is beautiful"
out<-regexpr("beau",text)
out
#[1] 10
#attr(,"match.length")
#[1] 4
#attr(,"useBytes")
#[1] TRUE
out[1]
#[1] 10
out[2]
#[1] NA
你能帮忙理解regexpr的输出吗?我只关心与文本位置有关的值,即下面的10。但是它显示了两个值,即10和4。如何仅捕获数字10。
这个输出是数字向量吗?
text<-"World is beautiful"
out<-regexpr("beau",text)
out
#[1] 10
#attr(,"match.length")
#[1] 4
#attr(,"useBytes")
#[1] TRUE
out[1]
#[1] 10
out[2]
#[1] NA
out
是一个带有属性的长度为 1L
的原子向量...
str(out)
atomic [1:1] 10
- attr(*, "match.length")= int 4
- attr(*, "useBytes")= logi TRUE
out
的值为10
(尝试c(out)
以删除属性),它描述了字符向量中与您的模式匹配的起始位置。 attr(out,"match.length")
是[1] 4
,它描述了匹配的长度。
您的text
字符串只有一个元素,因此out
也只有一个元素。尝试regexpr("beau",rep(text,3))
。
从regexpr
的帮助页面中获取信息。您可以在R控制台中键入?regexpr
来获取它。
regexpr返回一个整数向量,与文本长度相同,给出第一个匹配的起始位置,如果没有则返回-1,并带有属性"match.length",一个整数向量,给出匹配文本的长度(或无匹配时为-1)。匹配位置和长度以字符为单位,除非使用useBytes = TRUE,此时它们以字节为单位。如果使用命名捕获,则还有其他属性"capture.start"、"capture.length"和"capture.names"。