我有一个向量,我想针对数据帧的每一行检查每个元素。它涉及一个 grep 函数,因为要检查的元素隐藏在其他文本中。
在这个论坛的帮助下,我得到了这个代码:
mat=data.frame(par=c('long A story','C story', 'blabla D'),val=1:3)
vec=c('Z','D','A')
mat$label <- NA
for (x in vec){
is.match <- lapply(mat$par,function(y) grep(x, y))
mat$label[which(is.match > 0)] <- x
}
问题是执行需要几分钟。有没有办法对此进行矢量化?