我正在运行一个如下所示的命令语句:
t.out=setx(z.out,
race1=1
race2=0,
race3=0,
influence1=0,
influence2=0,
influence3=0,
influence4=0,
influence5=0
influence6=0,
influence7=0)
s.out=sim(z.out, x=t.out)
ev=s.out$qi[[1]]
ev.mean=mean(ev)
ev.ci = quantile(ev, c(0.025,0.975))
race1.infl0=c(ev.mean,ev.ci)
上面的所有变量都是虚拟变量,我需要为所有可能的种族和影响组合运行此语句,例如,下一个变量如下:
t.out=setx(z.out,
race1=1
race2=0,
race3=0,
influence1=1,
influence2=0,
influence3=0,
influence4=0,
influence5=0,
influence6=0,
influence7=0
s.out=sim(z.out, x=t.out)
ev=s.out$qi[[1]]
ev.mean=mean(ev)
ev.ci = quantile(ev, c(0.025,0.975))
race1.infl1=c(ev.mean,ev.ci)
唯一感兴趣的输出是最后一个有种族和影响力数字的输出。是否有任何机构有关于创建功能的建议,我可以使用它来不手动输入整个组合?任何和所有帮助将不胜感激。
我创建模型的数据集如下所示:
accessibility race influence (Intercept) race1 race2 influence2 influence3 influence4 influence5 influence6 influence7 influence8 influence9 influence10 influence11 influence12
9.211988891 2 2 1 1 0 1 0 0 0 0 0 0 0 0 0 0
5.859253249 2 5 1 1 0 0 0 0 1 0 0 0 0 0 0 0
9.752980715 2 6 1 1 0 0 0 0 0 1 0 0 0 0 0 0
3.574378438 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
6.483454332 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
27.18509232 2 6 1 1 0 0 0 0 0 1 0 0 0 0 0 0
17.72394783 2 6 1 1 0 0 0 0 0 1 0 0 0 0 0 0
1.580419444 2 2 1 1 0 1 0 0 0 0 0 0 0 0 0 0
7.755443719 2 5 1 1 0 0 0 0 1 0 0 0 0 0 0 0
5.636728983 2 6 1 1 0 0 0 0 0 1 0 0 0 0 0 0
答案 0 :(得分:1)
你可以像这样创建一个函数:
myfun <- function(race1,race2,race3,influence1,influence2,influence3,influence4,influence5,influence6,influence7) {
t.out=setx(z.out,
race1=race1
race2=race2,
race3=race3,
influence1=influence1,
influence2=influence2,
influence3=influence3,
influence4=influence4,
influence5=influence5
influence6=influence6,
influence7=influence7)
s.out=sim(z.out, x=t.out)
ev=s.out$qi[[1]]
ev.mean=mean(ev)
ev.ci = quantile(ev, c(0.025,0.975))
race.infl=c(ev.mean,ev.ci)
return(race.infl)
}
然后,您可以创建要在数据框中运行的不同排列,并创建for循环以对数据框中的每一行运行此函数。如果您提供一些示例数据,我可以演示如何执行此操作。