在无索赔折扣方案的R规划中,替换具有零长度错误

在无索赔折扣方案的R规划中,替换具有零长度错误,r,R,我试图在R中运行这段代码来计算一家公司在n年后从保费中获得的收入,但我一直得到的替换结果是零误差。(_TM的幂_是一个乘法矩阵的函数,可以很好地工作) NCD=c(1.85.70) 基本保费=200 p=数字(0) premI无法运行您的任何代码,因为您尚未提供\u TM函数的power\u。但它似乎是prem(n)为一个输入返回一个0长度的结果。得到错误后,检查当前的n值-这就是导致问题的n。然后,您可以针对特定的n调试函数,并找出它返回0长度结果的原因。问题是您的函数总是返回NULL。也许

我试图在R中运行这段代码来计算一家公司在n年后从保费中获得的收入,但我一直得到的替换结果是零误差。(_TM的幂_是一个乘法矩阵的函数,可以很好地工作)


NCD=c(1.85.70)
基本保费=200
p=数字(0)

premI无法运行您的任何代码,因为您尚未提供\u TM
函数的
power\u。但它似乎是
prem(n)
为一个输入返回一个0长度的结果。得到错误后,检查当前的
n
值-这就是导致问题的
n
。然后,您可以针对特定的
n
调试函数,并找出它返回0长度结果的原因。问题是您的函数总是返回
NULL
。也许
base\u premium*sum(p*NCD)
应该放在for循环之外?

    NCD = c(1,.85,.70)
    base_premium = 200

 

    p = numeric(0)
    prem<-function(n){
      for (i in length(NCD)) {
        p[i] = mean(power_of_TM(n)[,i])
        base_premium*sum(p*NCD)
        
      }
    }
    
    #check for n=5
    
    prem(5)
    
    premium=numeric(0)
    for (n in 1:20){
      premium[n]=prem(n)
    }
    Error in premium[n] <- prem(n) : replacement has length zero
    premium
    numeric(0)