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)
,它只是采样一个数字,并用它运行整个模拟。
答
作为@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))
尝试'R = 1:5'然后'sapply(R,runBothArms,...)''那里...'应改为你的函数的其他13个参数 –