如何优化(更少的循环)r 中的特定 while 循环

How to optimize (fewer cyclings) a specific while loop in r

我正在尝试检查 a2 的第一列中的任何值是否与 m_ 的第一列中的任何值匹配。如果存在,则从 a2 中提取具有该值的行。最后将所有符合条件的行合并在一起。

i=1

while(i<149473)
{j=1
while(j<10249){
if(as.integer(a2[i,1])==as.integer(m_[j,1])){
ob<-rbind(ob,a2[i,])
}  
j=j+1}
i=i+1
}
return(ob)

获取结果非常耗时,因为数据框中有大量行.. 谁能帮我优化循环?

一样简单的东西
ob <- a2[a2[[1]] %in% unique(m[[1]]),]