我正在创建一个执行交叉验证和岭回归的功能,以选择模型的预测变量。我的函数的输入是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)
工作。有什么想法吗?
答案 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