将对象矢量放置为model.matrix中的预测变量

时间:2014-01-14 23:31:57

标签: r

我有以下向量,其中每个字母代表一个数字数据框

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]  

除了手动输入之外,还有其他方法吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

你能试试吗?

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

我认为你只需要一段时间〜,这样你就不用处理任何名字了。