多边形函数的求和R中的循环
我正在研究R中的一个循环:多边形函数的求和R中的循环,r,loops,R,Loops,我正在研究R中的一个循环: dypol和wnc是1×3矩阵,x是1×100矩阵。 我希望循环返回一个3乘100的矩阵(每个列的累积)。我有这个: For (i in 1:100) { i=dypol*t(x^2)-dypol+wnc {yi = cumsum(i) } } 但是它只返回第一行。试试这个。我已将循环转换为sapply调用(有效地循环x),然后在生成矩阵的列上应用cumsum: x <- 1:100 wnc <- c(0.123, 0.263, 0.223)
dypol
和wnc
是1×3矩阵,x
是1×100矩阵。
我希望循环返回一个3乘100的矩阵(每个列的累积)。我有这个:
For (i in 1:100) {
i=dypol*t(x^2)-dypol+wnc
{yi = cumsum(i) }
}
但是它只返回第一行。试试这个。我已将循环转换为
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)
x如果dypol
是1乘3,并且x
是1乘100,那么您不能使用dypol*t(x^2)
@Adam-很高兴看到您提供了您所拥有的代码。首先,当你通过循环时,你似乎覆盖了循环计数器i。如果你能提供问题中的数据和代码,人们会更容易帮助你。但即使在那之前,还不清楚(至少对我来说)你希望你的计算是如何工作的,所以你可能值得尝试一个更清晰的解释。关于提问的指导,请参阅本文:好的,谢谢你的提示。我的数据看起来像这样x=(0:100)wnc=(0.123 0.263 0.223)dypol=(.05.30.02)循环的结果应该是这样的(只是一个例子)x A B C 1 01232 02633 02230 2 01233 02634 02231 5 01244 02640 02237..100所以,对于A=0.05*t(1^2)-0.05+.123]+[0.05*t(2^2)-0.05+.123]好的问题往往伴随着一个小的可重复的例子。例如,您可以使用一个x
长度4
的示例,并准确显示了预期的输出应该是什么。谢谢。我将深入讨论sapply。