【问题标题】:How to choose variable pairs for regression analysis using lapply如何使用 lapply 为回归分析选择变量对
【发布时间】:2014-01-17 05:05:42
【问题描述】:

我有以下数据框:

varnames<-c( "id", "a", "b", "c", "a.0", "b.0", "c.0", "d", "e", "f")
a <-as.data.frame (matrix (round (rnorm (40, mean = 5, sd = 3), 1), 4, 10))
colnames (a)<-varnames

> a
   id    a   b   c a.0 b.0 c.0   d    e   f
1 2.1 -0.5 7.0 6.0 1.7 9.2 2.6 3.6  4.6 7.0
2 4.0  7.1 4.1 5.4 6.8 4.3 7.7 0.1  5.6 1.4
3 8.7  6.9 3.8 7.5 5.1 3.3 7.9 4.1 10.3 5.7
4 5.6  5.3 3.9 2.8 8.2 4.9 6.9 6.6  3.7 1.9

我正在执行三个单独的 GEE 分析,公式始终包含“d”、“e”和“f”作为预测变量 (d+e+f)。每个公式都有“a”或“b”或“c”作为因变量:

library (gee)
model<-lapply ((a)[2:4], function (x) {
gee(x~d+e+f, data=a, id = id)
}) 

此代码工作正常。

我的下一个目标是将“a.0”或“b.0”或“c.0”作为预测变量添加到以“a”、“b”和“c”作为因变量的公式中,相应地:

gee(a~a.0+d+e+f, 数据=a, id = id)

gee(b~b.0+d+e+f, 数据=a, id = id)

gee(c~c.0+d+e+f, data=a, id = id)

也就是说,我想在每个公式中添加一个与因变量相对应的附加预测变量,但后缀为“.0”。

我天真地尝试了以下方法但没有成功:

model<-lapply ((a)[2:4], function (x) {
gee(x~ paste(names (x)[2:4], "0", sep = ".")+d+e+f, data=a, id = id)
})

它可能不能作为函数内的代码“ paste(names (x)[2:4], "0", sep = ".") " 不返回正确的变量名,尽管它在用作一个单独的代码。

非常感谢您对如何在我的公式中自动插入正确的变量名的建议。

【问题讨论】:

    标签: r regression lapply


    【解决方案1】:

    您可以对要处理的变量的名称进行操作,而不是处理 a 的列:

    set.seed(144)
    varnames<-c( "id", "a", "b", "c", "a.0", "b.0", "c.0", "d", "e", "f")
    a <- as.data.frame (matrix (round (rnorm (40, mean = 5, sd = 3), 1), 4, 10))
    colnames(a) <- varnames
    model <- lapply(varnames[2:4], function(x) {
      gee(paste0(x, "~", x, ".0+d+e+f"), data=a, id=id)
    })
    

    【讨论】:

      猜你喜欢
      • 2014-12-11
      • 2017-02-09
      • 1970-01-01
      • 2016-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-27
      • 2022-11-29
      相关资源
      最近更新 更多