2017-09-14 52 views
0

我刚刚学习如何处理model.matrix。例如,要创建样本外预测,我从我的模型中提取公式,并说它是一个线性模型。 使用formula(mymodel)提取的功能:从公式中删除因变量model.matrix

form <- formula(y ~ x1 + x2 * x3) 

现在,用来创建预测我需要一个model.matrix没有我y。我可以用手工键入:

X <- model.matrix(~ x1 + x2 * x3, data=out.of.sample.data) 

然而,有没有使用方式,例如,update摆脱左部我的公式吗?

谢谢!

回答

0

这是我通常这样做的。我不知道这个内置函数。

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]])) 
1

它可以与update通过设置响应变量来完成到NULL

form <- formula(y ~ x1 + x2 * x3) 
newform <- update(form, NULL ~ .)