如何通过r

时间:2018-04-13 14:01:46

标签: r model.matrix

我正在创建一个执行交叉验证和岭回归的功能,以选择模型的预测变量。我的函数的输入是dataframe和期望的结果变量outcome(正在预测的是什么)。我使用model.matrix()来创建一个x矩阵,我将传递给glmnet()。我的函数使用outcome作为model.matrix()中的对象参数,但看起来outcome是通过model.matrix()的错误数据类型。通常使用model.matrix(),我会写model.matrix(Weight~.,dataframe)之类的东西。但是,在这种情况下,model.matrix不能作为model.matrix(outcome~.,dataframe)model.matrix(dataframe$outcome~.,dataframe)工作。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果'outcome'是存储字符串"Weight"的对象,那么我们paste可以formula

model.matrix(formula(paste(outcome, "~ .")), dataframe) 

使用'iris'数据集

的可重现示例
data(iris)
outcome <- "Species"
m1 <-  model.matrix(formula(paste(outcome, "~ .")), iris)
m2 <- model.matrix(Species ~ ., iris)
identical(m1, m2)
#[1] TRUE