2014-01-17 31 views
0

选择变量对回归分析我有一个以下数据帧:如何使用lapply

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”作为因变量的公式中,相应地:

吉(一〜A.0 + d + E + F,DATA = A,ID = ID)

吉(b〜B.0 + d + E + F,数据= A,ID = ID)

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

它可能不作为代码工作 “糊状物(名称(X)[2:4], ”0“,月=”“) “函数内部不会返回适当的变量名称,尽管它在作为单独的代码使用时会这样做。

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

回答

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

这是伟大的,非常感谢你josilber! – DSSS