【问题标题】:how to pass variable through model.matrix() in r如何在 r 中通过 model.matrix() 传递变量
【发布时间】:2018-04-13 14:01:45
【问题描述】:

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

【问题讨论】:

  • 您可以将pasteformula 一起使用,即model.matrix(formula(paste(outcome, "~ .")), dataframe)
  • 如果你能分享一个可重现的小例子,或者至少告诉我们神秘的outcome 变量是什么类,这会有所帮助。

标签: r model.matrix


【解决方案1】:

如果'outcome'是存储字符串"Weight"的对象,那么我们可以将pasteformula相结合

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    • 2012-09-30
    • 2020-09-04
    • 1970-01-01
    • 2019-06-05
    • 2021-01-11
    • 1970-01-01
    相关资源
    最近更新 更多