ссылки на подмножество grep - PullRequest
       3

ссылки на подмножество grep

3 голосов
/ 14 сентября 2011

Скажите, у меня есть список в R

alist<-c("a","a","b","c")

теперь я хочу взять подмножество этого списка alist[c(2,3,4)]

если я применяю функцию grep к подмножеству, т.е.

grep("b",alist[c(2,3,4)]) 

Я получу 2. Можно ли в любом случае использовать функцию grep, чтобы получить позицию b в исходном списке, а не в подмножестве? Таким образом, вместо 2 функция grep вернет 3?

1 Ответ

4 голосов
/ 14 сентября 2011

Вы можете просто запустить grep() в исходном списке

matches <- grep("b",alist)

Затем выполнить пересечение с вашим индексным вектором

intersect(matches, c(2,3,4))

Таким образом, вы получите индекс в оригинальномсписок, но только те элементы, которые также включены в подсписок.

Конечно, вы можете сделать все это вместе в одну строку

intersect(grep("b",alist), c(2,3,4))

И это начинает выглядеть очень похоже на вашоригинальное grep() утверждение в вопросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...