1
我想要使用apply
/mapply
/lapply
/sapply
或任何其他方式向量化我的嵌套for循環代碼以減少運行時間。我的代碼如下:向量化嵌套for循環
for (i in 1:dim){
for (j in i:dim){
if(mydist.fake[i,j] != d.hat.fake[i,j]){
if((mydist.fake[i,j]/d.hat.fake[i,j] > 1.5)|(d.hat.fake[i,j]/mydist.fake[i,j]>1.5)){
data1 = cbind(rowNames[i],rowNames[j], mydist.fake[i,j], d.hat.fake[i,j], 1)
colnames(data1) = NULL
row.names(data1) = NULL
data = rbind(data, data1)
}else{
data1 = cbind(rowNames[i],rowNames[j], mydist.fake[i,j], d.hat.fake[i,j], 0)
colnames(data1) = NULL
row.names(data1) = NULL
data = rbind(data, data1)
}
}
}
}
write.table(data, file = "fakeTest.txt", sep ="\t", col.names = FALSE, row.names = FALSE)
- rowNames是所有數據點
data
的rownames的載體是數據幀mydist.fake
和d.hat.fake
是距離矩陣(其中對角是零和的值上下三角相同),因此對下三角的橫向感興趣(對角線也留下值)。- 這兩個矩陣的尺寸是相同的。
我現在面臨的主要問題是j
的循環,j
被初始化爲i
的矢量。
歡迎堆棧溢出。 [可重複使用的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)是要走的路。在你的例子中是什麼'rowNames'? – mnel 2013-03-15 03:40:52
真的需要這樣的問題的樣本數據。 – 2013-03-15 04:07:27