【问题标题】:simplify formula using for loop使用 for 循环简化公式
【发布时间】:2014-06-11 12:52:33
【问题描述】:

您好,我正在尝试执行以下操作:-

pvliab <- array(0,c(num_samples,num_time_periods,num_groups))
Ben <- array(0,c(num_samples,num_time_periods,num_groups))

v <- 0.04

pvliab[,1,] <- Ben[,1,]*v
pvliab[,2,] <- Ben[,1,]*v + Ben[,2,]*(v^2)
pvliab[,3,] <- Ben[,1,]*v + Ben[,2,]*(v^2) + Ben[,3,]*(v^3)
pvliab[,4,] <- Ben[,1,]*v + Ben[,2,]*(v^2) + Ben[,3,]*(v^3) + Ben[,4,]*(v^4)

等等

我如何使用'for'来简化它?

【问题讨论】:

  • 本是谁?我们认识他吗?
  • 可能是 Ben Bolker 的粉丝 :)
  • 也许不是很明显。 @csgillespie 要求a reproducible example。例如,您可以将dput(Ben) 的输出编辑到您的问题中。
  • 欢迎来到 StackOverflow!请阅读有关how to ask a question 的信息以及如何生成minimal reproducible example。这将使其他人更容易帮助您。
  • 还有,不应该是Ben[,3,]*(v^3)吗?

标签: r for-loop


【解决方案1】:

嵌套循环实现缓慢,但如果您为 j 定义一个最大值(pvliab[,i,] 中的索引。

for (i in 1:n){
    c = 0
    for (j in 1:i){
        c = c + Ben[,j,]*(v^j)
    }
pvliab[,i,] <- c
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    • 2016-11-20
    • 1970-01-01
    相关资源
    最近更新 更多