你能帮助理解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
答案 0 :(得分:2)
out
是一个length 1L
原子向量,带有属性...
str(out)
atomic [1:1] 10
- attr(*, "match.length")= int 4
- attr(*, "useBytes")= logi TRUE
out
(尝试c(out)
删除属性)的值为10
,它描述了字符向量中与模式匹配的起始位置。 attr( out , "match.length")
是
[1] 4
,描述了比赛的长度。
您的text
字符串长度为一个元素,因此out
长度为一个元素。试试regexpr("beau",rep(text,3))
。
答案 1 :(得分:0)
来自regexpr
的帮助页面。您可以在R控制台中输入?regexpr
来获取它。
regexpr 返回与文本给出长度相同的整数向量 第一场比赛的起始位置,如果没有,则为-1 属性“match.length”,一个给出长度的整数向量 匹配的文本(或-1表示不匹配)。比赛位置和长度是 除非使用useBytes = TRUE,否则以字节为单位。 如果使用了命名捕获,则还有其他属性“capture.start”, “capture.length”和“capture.names”。