[英]how to pass variable through model.matrix() in r
我正在创建一个函数,该函数执行交叉验证和岭回归以为模型选择预测变量。 我函数的输入是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)
model.matrix(outcome~.,dataframe)
或model.matrix(dataframe$outcome~.,dataframe)
model.matrix(outcome~.,dataframe)
model.matrix(dataframe$outcome~.,dataframe)
。 有任何想法吗?
如果'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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.