迭代传递给lapply的函数(grep)的参数

时间:2017-03-02 13:24:18

标签: r lapply

我目前正在进行类似下面的操作:

v<-c("my","pig","is","big","with","a","name")
s<-c("m","g")
for(i in c(1:length(s))){
    print(grep(v,pattern=s[i]))
}

打印

[1] 1 7
[1] 2 4

我希望将返回值存储在向量中的操作进行矢量化。我试过了

 mynewvector<-lapply(v,grep,pattern=s,x=v)  

但问题是我不知道如何让lapply迭代作为参数传递的元素(例如迭代s)。我看到this回答,但我不认为mapply在这里工作,因为我试图保持一个参数常量(x=v)并迭代另一个参数({{1 }})

我该怎么做?

1 个答案:

答案 0 :(得分:1)

跟进d.b。的回复,最明确的解决方案是

lapply(s, function(a) grep(pattern = a, x = v))