获得 string/character rpart 回归树的表示

get string/character representation of rpart regression tree

我正在使用这样的代码:

library(datasets)
library(rpart)
library(caret)

options(warn=-1)
set.seed(42)


x <- subset(iris, select=-c(Species, Sepal.Length))

fitControl <- trainControl(
     method = "repeatedcv"
     , number = 10
     , repeats = 10
 )

fit_data <- caret::train(
     x = x
     , y = iris$Sepal.Length
     , method = 'rpart'
     , trControl = fitControl
     #, control=rpart.control(minsplit=3, minbucket=1, cp=0.001)
     #, metric = "ROC"
     #, tuneLength = 20
    , control = rpart.control(maxdepth = 3) #  minbucket=20
)

model <- fit_data$finalModel
model

最后一行:

model

在屏幕上将模型打印为 string/character:

n= 150 

node), split, n, deviance, yval
      * denotes terminal node

1) root 150 102.1683000 5.843333  
  2) Petal.Length< 4.25 73  13.1391800 5.179452 *
  3) Petal.Length>=4.25 77  26.3527300 6.472727  
    6) Petal.Length< 6.05 68  13.4923500 6.326471 *
    7) Petal.Length>=6.05 9   0.4155556 7.577778 *

有没有办法明确地获得实际的 string/character 表示?我试过这样的事情:

 df <- data.frame(test = as.character(model))

将模型作为字符串写入数据框。它打印太多...

以下对我有用:

model_text <- capture.output(print(model))
OutputDataSet <- data.frame(model_text = model_text, stringsAsFactors=FALSE)

不确定预期的输出,但我们可以将模型保存为字符,如下所示:

model <- quote(fit_data$finalModel)

然后我们可以在需要时简单地调用它,如下所示:

eval(model)