2012-10-07 26 views
0

我的工作循環中R:迴路中的R與cumsum多邊形功能

dypolwnc是1×3矩陣和x是1通過-100矩陣。 我想循環返回一個3×100的矩陣(每列累計)。我有這個:

For (i in 1:100) { 
i=dypol*t(x^2)-dypol+wnc 
{yi = cumsum(i) } 
} 

但它只返回第一行。

+0

如果'dypol'是1×3和'x'是1 -by-100,那麼你不能採用'dypol * t(x^2)'。 – flodel

+0

@Adam - 很高興看到您提供了您擁有的代碼。有一件事你似乎在循環中覆蓋循環計數器。如果您可以提供問題中的數據以及代碼,那麼人們可以更輕鬆地爲您提供幫助。但即使在此之前,至少對我而言,並不清楚您的計算方式是如何工作的,所以您可能需要嘗試更清晰的解釋。看到這篇文章的問題提示指導:http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610#5963610 – SlowLearner

+0

好的,謝謝你的提示。 我的數據是這樣的 X =(0:100) WNC =(0.123 \t 0.263 0.223 \t) dypol =(0.05 \t 0.30 \t 0.02) 的循環的結果應該是這樣的(只是一個例如) X \t \t甲乙\tç \t 0,1232 0,2633 0,2230 \t \t 0,1233 0,2634 0,2231 \t \t 0,1244 0,2640 \t 0 ,2237 .. \t \t \t \t \t 所以,對於第二行爲A = 0.05 * T(1→2)-0.05 + 0.123] + [0.05 * T(2^2)-0.05 + 0.123] – Adam

回答

0

試試這個。我已轉換的循環成sapply呼叫(這有效地遍歷x),然後對所得到的矩陣的列施加cumsum

x  <- 1:100 
wnc <- c(0.123, 0.263, 0.223) 
dypol <- c(.05, .30, .02) 

Z <- t(sapply(x, function(x)dypol * x^2 - dypol + wnc)) 
apply(Z, 2, cumsum) 
+0

謝謝。我會潛入寶瓶。 – Adam