我需要把一个数学方程和一个指数转换成代码。需要转换为代码的和:
以下是错误的,但它的方式,我一直试图思考到目前为止。
for (t in 2:T) { for (h in 0:M) { sum_xp[t] = sum_xp[t] + x[h] * p[t-h] y[t] = b[t] + sum_xp[t] } }
pxq42qpu1#
所以,我猜你想要这样的东西:
for (t in 2:T) { sum_xp <- 0 for (h in 0:(M-1)) {sum_x_p <- sum_xp + x**h * p(t-h)} y[t] <- b[t] + sum_xp }
注意,y[t]的赋值在for循环之外。这也有助于理解变量x,y,p等的维数。但我猜我猜对了
关于速度的另一件事:
在R中有趣的是,如果你想要快速的代码,你想避免大的for循环,而是向量化你的代码。R中有各种各样的“apply”-shenanegans可以使向量化更容易,但它需要一些抽象的思维来实现。作为各种apply-magic的参考,我推荐Advanced R Handbook。如果速度不是一个很大的问题,那么继续使用传统的for循环;- )
1条答案
按热度按时间pxq42qpu1#
所以,我猜你想要这样的东西:
注意,y[t]的赋值在for循环之外。
这也有助于理解变量x,y,p等的维数。但我猜我猜对了
关于速度的另一件事:
在R中有趣的是,如果你想要快速的代码,你想避免大的for循环,而是向量化你的代码。
R中有各种各样的“apply”-shenanegans可以使向量化更容易,但它需要一些抽象的思维来实现。作为各种apply-magic的参考,我推荐Advanced R Handbook。
如果速度不是一个很大的问题,那么继续使用传统的for循环;- )