2015-02-11 28 views
-1

我想檢查a2的第1列中的任何值是否與第1列中的任何值匹配。如果存在,從a2中提取那個值。最後將所有合格的行合併在一起。如何優化(更少的循環)特定的while循環在r

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) 

它是如此費時得到的結果,因爲大量的數據幀的行.. 任何人可以幫助我優化的循環?

+0

簡單我想你需要檢查文檔中的'match'功能 – 2015-02-11 23:29:02

+0

...或'merge'功能 – djas 2015-02-11 23:37:06

+0

什麼是你想怎麼辦。您深入http://www.burns-stat.com/pages/Tutor/R_inferno.pdf的第二個圈內 - 看起來您希望合併第一列中的兩個數據框,但由於您未提供可再現示例或解釋你正在嘗試做什麼這是不可能的幫助。\ – mnel 2015-02-11 23:39:07

回答

0

東西作爲

ob <- a2[a2[[1]] %in% unique(m[[1]]),] 
+0

謝謝。認爲我需要深入研究R – starfunk 2015-02-12 16:09:37