2014-01-17 73 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