如何在函数中使用glm中的R对比度包

如何在函数中使用glm中的R对比度包,r,function,package,glm,contrast,R,Function,Package,Glm,Contrast,我有一个大的数据集,我正试图为其生成glm输出的汇总表,我有一些交互术语,我正在使用R对比包。我正在尝试编写一个函数,它将根据变量列表提供输出 我怀疑问题与名称列表中字符的格式有关,因为它是输入到对比度函数中的 我在将列表中的变量放入glm函数时遇到了类似的问题,因此我最终使用了substitute()。但是,该策略在对比度函数中不起作用,并产生错误: reg.con <- contrast(reg, list(substitute(i, list(i = as.name(name)))

我有一个大的数据集,我正试图为其生成glm输出的汇总表,我有一些交互术语,我正在使用R对比包。我正在尝试编写一个函数,它将根据变量列表提供输出

我怀疑问题与名称列表中字符的格式有关,因为它是输入到对比度函数中的

我在将列表中的变量放入glm函数时遇到了类似的问题,因此我最终使用了substitute()。但是,该策略在对比度函数中不起作用,并产生错误:

reg.con <- contrast(reg, list(substitute(i, list(i = as.name(name))) = 1, intvar = 1), list(substitute(i, list(i = as.name(name))) = 0, intvar = 1))
我希望得到一个输出列表,其中包含对比度、置信区间限制和namelist中每个变量的p值,但是我得到的是上面提到的各种不同的错误

任何帮助都将不胜感激,提前感谢

reg.con <- contrast(reg, list(name = 1, intvar = 1), list(name = 0, intvar = 1))
namelist = list('var1', 'var2', 'var3', 'var4') 

results=lapply(namelist, function(name) {

reg = glm(substitute(outcome ~ i*intvar, list(i = as.name(name))), data=mydat, family=binomial)

reg.con <- contrast(reg, list(name = 1, intvar = 1), list(name = 0, intvar = 1))

mat=matrix(nrow=1, ncol=4)
mat[1,1]=as.numeric(exp(reg.con$Contrast))
mat[1,2]=as.numeric(exp(reg.con$Lower))
mat[1,3]=as.numeric(exp(reg.con$Upper))
mat[1,4]=as.numeric(reg.con$Pvalue)
})