首页 > 解决方案 > 在循环中连接字符串以生成一个字符串

问题描述

我必须为线性回归模型建立一个公式(使用 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

第一列(“Smoke”)是我的特征变量,其余的(基因名称)是基因表达水平。

我想建立这样的东西:

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)
    }

但它不起作用。我确定我错过了一些东西......或者很多。因此,如果有人可以提供帮助,那就太好了!

标签: rstringconcatenation

解决方案


推荐阅读