我正在创建一个执行交叉验证和岭回归的函数,以选择模型的预测变量。我的函数的输入是dataframe
和期望的结果变量outcome
(预测什么)。我正在使用 model.matrix() 创建一个我将传递给 glmnet() 的 x 矩阵。我的函数outcome
在 model.matrix() 中用作对象参数,但看起来outcome
是通过 model.matrix() 的错误数据类型。通常使用 model.matrix(),我会写类似model.matrix(Weight~.,dataframe)
. 但是,在这种情况下,model.matrix 不能用作model.matrix(outcome~.,dataframe)
or model.matrix(dataframe$outcome~.,dataframe)
。有任何想法吗?
问问题
768 次
1 回答
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
于 2018-04-13T14:04:37.030 回答