我目前正在进行类似下面的操作:
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 }})
我该怎么做?
答案 0 :(得分:1)
跟进d.b。的回复,最明确的解决方案是
lapply(s, function(a) grep(pattern = a, x = v))