grep子集索引引用

grep子集索引引用,r,R,假设我在R中有一个列表 alist<-c("a","a","b","c") 我要两个。是否仍然需要使用grep函数,以便获得原始列表中b的位置,而不是子集?因此,grep函数将返回3而不是2?您只需在原始列表上运行grep() matches <- grep("b",alist) 通过这种方式,您可以在原始列表中获得索引,但只能获得那些也包含在子列表中的项 当然,你可以在一行中一起完成 intersect(grep("b",alist), c(2,3,4)) 它开始看起来很像问

假设我在R中有一个列表

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

我要两个。是否仍然需要使用
grep
函数,以便获得原始列表中
b
的位置,而不是子集?因此,
grep
函数将返回3而不是2?

您只需在原始列表上运行
grep()

matches <- grep("b",alist)
通过这种方式,您可以在原始列表中获得索引,但只能获得那些也包含在子列表中的项

当然,你可以在一行中一起完成

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

它开始看起来很像问题中原始的
grep()
语句。

为什么不能在原始列表中使用
grep
来获得原始位置?好的-我会问显而易见的问题。如果您不希望返回的位置是该数据子集的位置,那么为什么需要获取该子集?@Joshua Ulrich&@Chase:他的小示例没有说明这一点,但有可能原始列表中有一个元素与正则表达式匹配,但不在子列表中。因此需要一个
intersection()
call.wow谢谢这真是太棒了。这对我正在做的事情来说也是非常有效的!
intersect(matches, c(2,3,4))
intersect(grep("b",alist), c(2,3,4))