在R中的for循环中求和

在R中的for循环中求和,r,loops,for-loop,sum,R,Loops,For Loop,Sum,我正在努力解决如何在R中编码这个总和;我猜我们可以使用for循环,但我的头脑无法控制它 我试图编写的公式是: n-\sum{k=0}{n-1}选择(n-1,k)beta_kexp(kLn-k)表示n=1,2 其中: beta_k是我已经得到的向量 L是一个常数 我已经手工编写了这个代码,但是我想把它放到某种for循环中 mu3<-3-choose(2,1)*beta1*exp(-1*lambdaL*(3-1))-choose(2,2)*beta2*exp(-2*lambdaL*(3-2)

我正在努力解决如何在R中编码这个总和;我猜我们可以使用for循环,但我的头脑无法控制它

我试图编写的公式是:

n-\sum{k=0}{n-1}选择(n-1,k)beta_kexp(kLn-k)表示n=1,2

其中:

  • beta_k是我已经得到的向量
  • L是一个常数
  • 我已经手工编写了这个代码,但是我想把它放到某种for循环中

    mu3<-3-choose(2,1)*beta1*exp(-1*lambdaL*(3-1))-choose(2,2)*beta2*exp(-2*lambdaL*(3-2))
    mu4<-4-choose(3,1)*beta1*exp(-1*lambdaL*(4-1))-choose(3,2)*beta2*exp(-2*lambdaL*(4-2))-choose(3,3)*beta3*exp(-3*lambdaL*(4-3))
    mu5<-5-choose(4,1)*beta1*exp(-1*lambdaL*(5-1))-choose(4,2)*beta2*exp(-2*lambdaL*(5-2))-choose(4,3)*beta3*exp(-3*lambdaL*(5-3))-choose(4,4)*beta4*exp(-4*lambdaL*(5-4))
    
    谢谢大家!

    考虑一个嵌套的apply调用,该调用使用
    mapply
    迭代地将n和k个参数传递给嵌入的
    sapply
    以循环通过从1到当前k的所有连续beta,并迭代地求和结果

    输入

    lambdaL <- 0.5
    beta <- c(0.0000000,1.0000000,0.7869387,1.0278660,1.5510843,2.3702034,
              3.4694342,4.7718938,6.1685468,7.5667952,8.9154479)
    

    lambdaL这不是和你一样的问题吗?你尝试过什么循环?我尝试用这个添加一个数学乳胶图像。不幸的是,在上使用的MathJax在StackOverflow上没有呈现在这里。根据需要拆下或调整。
    
    betarec(10,0.5)
     [1] 0.0000000 1.0000000 0.7869387 1.0278660 1.5510843 2.3702034 3.4694342 
    4.7718938
     [9] 6.1685468 7.5667952 8.9154479
    
    lambdaL <- 0.5
    beta <- c(0.0000000,1.0000000,0.7869387,1.0278660,1.5510843,2.3702034,
              3.4694342,4.7718938,6.1685468,7.5667952,8.9154479)
    
    mu3<-3-choose(2,1)*beta[1]*exp(-1*lambdaL*(3-1))-choose(2,2)*beta[2]*exp(-2*lambdaL*(3-2))
    mu3
    # [1] 2.632121
    mu4<-4-choose(3,1)*beta[1]*exp(-1*lambdaL*(4-1))-choose(3,2)*beta[2]*exp(-2*lambdaL*(4-2))-choose(3,3)*beta[3]*exp(-3*lambdaL*(4-3))
    mu4
    # [1] 3.418404
    mu5<-5-choose(4,1)*beta[1]*exp(-1*lambdaL*(5-1))-choose(4,2)*beta[2]*exp(-2*lambdaL*(5-2))-choose(4,3)*beta[3]*exp(-3*lambdaL*(5-3))-choose(4,4)*beta[4]*exp(-4*lambdaL*(5-4))
    mu5
    # [1] 4.405454
    
    mu_formula <- function(n,k) {
       n + sum(sapply(seq(k), function(i)
               -choose((n-1),i)*beta[i]*exp(-i*lambdaL*(n-i))))
    }
    
    mu_vector <- setNames(mapply(mu_formula, 3:5, 2:4), paste0("mu", 3:5))
    mu_vector
    #      mu3      mu4      mu5 
    # 2.632121 3.418404 4.405454 
    
    mu_list <- setNames(Map(mu_formula, 3:5, 2:4),paste0("mu", 3:5))    
    mu_list
    # $mu3
    # [1] 2.632121
    
    # $mu4
    # [1] 3.418404
    
    # $mu5
    # [1] 4.405454
    
    mu_list <- setNames(Map(mu_formula,seq_along(beta)[-1]+1,seq_along(beta)[-1]),
                        paste0("mu",seq_along(beta)[-1]+1))
    mu_list
    
    # $mu3
    # [1] 2.632121
    
    # $mu4
    # [1] 3.418404
    
    # $mu5
    # [1] 4.405454
    
    # $mu6
    # [1] 5.507972
    
    # $mu7
    # [1] 6.640989
    
    # $mu8
    # [1] 7.756735
    
    # $mu9
    # [1] 8.840919
    
    # $mu10
    # [1] 9.896983
    
    # $mu11
    # [1] 10.93315
    
    # $mu12
    # [1] 11.95646