2013-10-15 2 views
1

Можете ли вы помочь в понимании вывода regexpr? Меня интересует текстовая позиция, которая ниже 10. Но это показывает два значения, которые составляют 10 и 4. Как я могу захватить только номер 10.R - Понимание вывода regexpr

Выводит ли этот вектор чисел?

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

Из справочной системы regexpr. Вы можете получить его, набрав ?regexpr в консоли R.

RegExpr возвращает целое вектор той же длины, что и текст, давая начальную позицию первого матча или -1, если его нет, с атрибутом «match.length», целочисленный вектор давая длина совпадающего текста (или -1 для соответствия). Позиции и длины совпадений равны в символах, если используется useBytes = TRUE, если они находятся в байтах. Если используется именованный захват, есть дополнительные атрибуты «capture.start», «capture.length» и «capture.names».

1

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)).

+0

Спасибо Simon – user2882768

+0

@ user2882768 добро пожаловать. Если этот или statquant ответ был удовлетворительным для поставленного вопроса, вы должны выбрать его для принятия, чтобы этот вопрос был отмечен как ответ. Вы можете нажать маленькую зеленую галочку рядом с вашим любимым ответом, если вам это нравится! Дополнительную информацию см. В разделах [** about **] (http://stackoverflow.com/about) и [** FAQ **] (http://stackoverflow.com/faq) веб-сайта. Добро пожаловать в SO! –

Смежные вопросы