r中

r中

问题描述:

使用函数中的随机变量我跑在为r的模拟,这是我使用的主要功能:r中

runBothArms<-function(HFincidence,r,cost,util,mod,matProb,baseCaseMat,HazardR, 
     allCauseMortality,iniAge,noInfluenceYear,noRecurencYear,HFduration,s2){ 
      res<-foreach(n=1:100000,.combine = rbind) %dopar% 
       mainSim(HFincidence,r,cost,util,mod,matProb,baseCaseMat,HazardR, 
     allCauseMortality,iniAge,noInfluenceYear,noRecurencYear,HFduration,s2) 
      return(calcRes(res,cost,mod)) 
      } 

现在是时候对我进行了敏感性分析。可以说我希望r在0-5%之间变化,我如何用我目前拥有的功能来做到这一点?因为如果我发送到功能r<-sample(0:5,1),它只是采样一个数字,并用它运行整个模拟。

+1

尝试'R = 1:5'然后'sapply(R,runBothArms,...)''那里...'应改为你的函数的其他13个参数 –

作为@Ken S.建议,你需要循环你的函数来运行多个模拟。考虑lapply返回你的函数的返回对象,它的长度等于输入向量,这里是sample(0:5, 5)

下面的列表,calcResults将是5列表每个迭代模拟,其中[R现在改变循环是循环变量。一定要与实际值替换PARAM值:

calcResults <- lapply(sample(0:5, 5), function(r) 
    runBothArms(hparam, r, cparam, uparam, mparam, mPparam, bCparam, HRparam, 
       aparam, iparam, nIparam, nRparam, HFparam, s2param))