2014-01-14 30 views
2

我有代表每一個號碼的數據幀中的系統字符字母以下向量放置對象的矢量作爲預測值在一個model.matrix

PreVar<-unique(c(list.ABC)) 

PreVar 

[1] "Dxg" "Dxu8" "Dxu10" "Cont2" "Cont3" "Cont41" "Cont42" "Cont44" "Cont52" 
"Cont62" 

我想放置10個PreVar對象(不在下面的表達式中用它們之間的+號作爲下面model.matrix的預測變量。

X <- model.matrix(z[2:length(z)] ~  )[,-1] 

除了手動輸入它們之外,還有其他方法可以嗎?

回答

1

這裏的關鍵是使用?paste?as.formula。考慮:

PreVar <- c("Dxg", "Dxu8", "Dxu10", "Cont2", "Cont3", "Cont41", "Cont42", 
      "Cont44", "Cont52", "Cont62") 
pastevar <- paste(c("z[2:length(z)] ~", paste(PreVar, collapse=" + "))) 
as.formula(pastevar) 
z[2:length(z)] ~ Dxg + Dxu8 + Dxu10 + Cont2 + Cont3 + Cont41 + 
    Cont42 + Cont44 + Cont52 + Cont62 
+0

謝謝,工作正常,但是Cont系列應該讀取Cont [[2]],Cont [[3]] ......,因爲數字是位置。沒有提到 – Barnaby

1

你能試試嗎?

X <- model.matrix(z[2:length(z)] ~ .  , data = z)[,-1] 

我認爲你只需要一段時間後〜這樣你就不必處理任何名稱的處理。

相關問題