【问题标题】:Reading rpart Input Parameters from a Text Variable从文本变量中读取 rpart 输入参数
【发布时间】:2011-09-21 13:03:22
【问题描述】:

我正在使用rpart 来制作决策树。例如:

fit <- rpart(Kyphosis ~ Age + Number + Start, data=kyphosis)

如何从文本文件中读取公式部分并以rpart 喜欢的格式获取它?我试过了:

predictor_variables <- c("Age", "Number", "Start")
rpart_formula <- Kyphosis ~ parse(text=paste(predictor_variables, collapse="+"))
fit <- rpart(rpart_formula, data=kyphosis)

但我得到一个错误:

 invalid type (expression) for variable 'parse(text = paste(predictor_variables, collapse = "+"))'

如何格式化rpart_formula 以便rpart 正确看到它?

【问题讨论】:

    标签: r formula rpart


    【解决方案1】:

    使用as.formula:

    rpart_formula <- as.formula(
        paste("Kyphosis ~ ", 
              paste(predictor_variables, collapse = " + "), 
              sep = ""
        )
    )
    

    【讨论】:

      【解决方案2】:

      尝试简单地将公式作为字符串传递:

      rpart_formula <-paste("Kyphosis ~ ",paste(predictor_variables, collapse="+"))
      

      应该由rpart 强制转换为公式。

      编辑

      正如下面的 cmets 所述,并非所有函数都会为您执行强制转换,因此您不应依赖此行为,但在这种情况下 rpart肯定会

      【讨论】:

      • 是的,但它不起作用 - 至少在 lm() 函数中。试试lm()
      • @TomasT。不。当问题是关于rpart 时,我为什么要在lm 中尝试呢?我承认lm 不会强制执行。但如果你尝试,你会发现我是对的,rpart 是对的。来吧……我等着! ;)
      • 我懒得安装那个包 :-) 好吧,你可能是对的,它适用于 rpart,但原则上……在稳健性原则中……他下次可能会尝试使用不同的包,它不会工作...... :-)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-13
      • 1970-01-01
      • 2012-04-23
      相关资源
      最近更新 更多