循环连接字符串以生成一个字符串

时间:2019-04-10 08:47:54

标签: r string concatenation

我必须为线性回归模型(使用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)
    }

但是它不起作用。我确定我缺少什么……或很多。 因此,如果有人可以提供帮助,那就太好了!

0 个答案:

没有答案