2013-12-20 67 views
3

我正在嘗試修改for循環以並行使用它作爲foreach循環。對於for循環,我創建一個空矩陣,然後用for循環生成的值填充它。但是這種方法在foreach循環中不起作用,我的結果矩陣仍然只填充了na,它沒有被填充。將foreach循環的結果保存在矩陣中

z是一個光柵文件,我是一個數值類的向量。我希望每個類i的柵格z中的單元格數量,然後將其除以柵格z中的單元格總數以得到此比例。

有關如何將其保存爲foreach循環中的矩陣/數據框的任何建議?

預先感謝您。


跟進這個previous question

回答

2

的你還沒有明白怎麼foreach作品。它與for循環不一樣。請研究包裝短片。這裏有兩個簡單的例子:

library(foreach) 
#you need to assign the loop result 
res <- foreach(z = 1:5, .combine=c) %do% { 
    a <- z 
    a #return value for the iterations 
} 

res 
#[1] 1 2 3 4 5 


res <- foreach(z = 1:5, .combine=cbind) %:% foreach(i = 10:13, .combine=c) %do% { 
    a <- z+i 
    a 
} 
res 
#  result.1 result.2 result.3 result.4 result.5 
# [1,]  11  12  13  14  15 
# [2,]  12  13  14  15  16 
# [3,]  13  14  15  16  17 
# [4,]  14  15  16  17  18 

請注意,你應該總是先測試你的循環,而不是首先進行並行化。另外,在循環內部使用print沒有意義。無論如何,當你並行運行循環時,你將看不到印刷值。

+0

感謝您的建議。我一直在閱讀cran文檔,但我無法將我正在做的事情與給出的例子聯繫起來。我正在嘗試我的代碼在一個單一的核心,只是試圖調試代碼。 – Karen