2011-09-21 28 views
4

我使用rpart来制定决策树。例如:从文本变量中读取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正确地看到了吗?

回答

6

使用as.formula

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

尝试简单地使式作为字符串:

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

应由rpart强迫成为公式。

编辑

正如下面的评论中指出,并非所有的功能将做强制你,所以你不应该依赖于这种行为,但在这种情况下rpart肯定不会

+0

这不会工作,必须用'as.formula',看到我的帖子 – TMS

+0

@TomasT。它在我的机器上运行。你试过了吗? – joran

+0

是的,它不起作用 - 至少在'lm()'函数中。在'lm()'中试试。 – TMS