【发布时间】: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