循环计算R中“连续乘积”序列函数的和

时间:2020-08-14 06:38:24

标签: r function loops package

我尝试为R中的以下公式计算值。

enter image description here

我具有每个对应的F_x,F_ {x + 1} ...的数据集和值。

但是,由于Qs都有太多的值,因此我正在考虑编写一个循环循环。有点困惑。 Q的循环似乎与s的循环有冲突

但是,如果我按如下所示编写循环,似乎我需要手工计算100次Q才能获得所有答案。另外我的循环似乎是错误的...如何解决此问题?非常感谢

Y <- function(x,s, Q){
  n <- length(s-x)-1
  Q <- c(1:100)

    for(s in seq(1:n)){

     Y[s] <- sum(s*Q[s]*cumprod(Fx[1:s])) 
    }
return(Y)
}

1 个答案:

答案 0 :(得分:1)

我不确定下面的代码是否达到您的目标

Y <- function(x,s) {
  Q <- 1:100
  S <- 1:(s-x)
  outer(Q,S,FUN = function(q,s) q * sum(c(1:s) * cumprod(Fx[1:s])))
}

for循环版本

Y <- function(x,s) {
  nr <- 100
  nc <- s-x
  y <- matrix(nr*nc,nrow = nr)
  for (Q in 1:nr) {
    for (S in 1:nc) {
      y[Q,S] <- Q * sum(c(1:S) * cumprod(Fx[1:S]))
    }
  }
  y
}