我必须为线性回归模型(使用glm()函数)建立一个公式,其中要尝试的变量太多。我正在做基因表达分析。 因此,我正在寻找一种将所有这些变量连接在单个字符串中的方法(在这种情况下,这些变量将是我的data.frame的列名),因此可以实现公式。
我的数据看起来像这样(实际数据框有213列):
> df
Smoke PRR22 C15orf40 RAX2 GIMAP1 TM2D3 FAM167AAS1 LINC00161 SMCR8 CYP11B1
DP019 No 6.247058 4.609030 4.920439 3.531275 6.032196 1.576602 3.261709 5.752494 4.082924
DP021 Yes 5.767487 4.451362 4.834086 3.054192 6.049870 1.779412 2.618781 5.291328 4.274439
DP022 No 6.008855 4.841719 4.834774 3.354556 6.244215 1.580933 3.135989 4.989184 3.319836
DP025 Yes 5.390064 4.420183 4.923600 3.356938 5.516580 1.796413 2.984576 5.189582 3.833807
DP033 No 5.479384 5.987276 4.858381 3.454082 7.176767 1.640109 3.213976 5.378756 4.195856
DP035 No 5.439995 4.825332 5.469710 3.561561 6.357713 1.684058 3.635607 4.786237 3.792060
第一列(“烟”)是我的性状变量,其余(基因名称)是基因表达水平。
我想构建这样的东西:
glm(Smoke ~ PRR22 + C15orf40 + RAX2 + GIMAP1... and so forth
我的问题是:如何以所有变量都存在的方式实现自动化?
也许将一列名称串联在一起就可以解决问题?例如:
for (i in colnames(df)[-1]){
form <- as.formula(paste0("Smoke ~ ", i))
glm(form, data=df)
}
但是它不起作用。我确定我缺少什么……或很多。 因此,如果有人可以提供帮助,那就太好了!