我正在学习如何处理model.matrix
。例如,为了创建样本外预测,我从模型中提取公式,说它是一个线性模型。
使用函数formula(mymodel)
提取:
form <- formula(y ~ x1 + x2 * x3)
现在,要创建预测,我需要一个没有y
的model.matrix。我可以手工打字:
X <- model.matrix(~ x1 + x2 * x3, data=out.of.sample.data)
但是,有没有办法使用update
来摆脱我公式的左边部分?
谢谢!
答案 0 :(得分:2)
通过将响应变量设置为update
:
NULL
完成此操作
form <- formula(y ~ x1 + x2 * x3)
newform <- update(form, NULL ~ .)
答案 1 :(得分:0)
这就是我通常这样做的方式。我不知道内置功能。</ p>
df = data.frame(y=rnorm(10), x1=rnorm(10), x2=rnorm(10), x3=rnorm(10))
mymodel = lm(y ~ x1 + x2 + x3, df)
form_vars_only =
formula(paste("~",strsplit(as.character(formula(mymodel)),"~")[[3]]))