3
我想使用的foreach改造下面的嵌套的for循環如何獲得foreach的矩陣列表?
first <- c(1, 2, 3)
second <- c(1, 2, 3)
dummy = matrix(double(), len(first), len(second))
c <- list()
c$sum <- dummy
c$times <- dummy
for (i in 1:len(first)) {
for (j in 1:len(second)) {
c$sum[i, j] <- first[i] + second[j]
c$times[i, j] <- first[i] * second[j]
}
}
c
成代碼,並得到矩陣作爲結果的相同的列表。我嘗試了許多不同的事情,但最近的「結果」是這樣的:
x <- foreach(b = second, .combine = "cbind") %:% foreach(a = first, .combine = "c") %do% {
c <- list()
c$sum <- a+b
c$times <- a*b
out <- c
}
x
如何得到正確使用的foreach矩陣的這個名單?
編輯:一種可能是使用的結果,並呼籲後的foreach改造它:
res <- list()
res$sum <- x[rownames(x)=="sum", ]
rownames(res$sum) <- NULL
colnames(res$sum) <- NULL
res$times <- x[rownames(x)=="times", ]
rownames(res$times) <- NULL
colnames(res$times) <- NULL
res
如何「參數多態」的foreach所以沒有必要改變結果嗎?
謝謝。這幫了很多。 – Samo 2012-04-01 16:31:10