繁体   English   中英

如何通过r中的model.matrix()传递变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM