我有以下向量,其中每个字母代表一个数字数据框
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]
除了手动输入之外,还有其他方法吗?
答案 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]
我认为你只需要一段时间〜,这样你就不用处理任何名字了。