Search code examples
rdecision-treerpart

Saving decision tree's output into a text file


I'm looking for a method to save decision tree's output in R. Here is a simple decision tree code in R:

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

and here is the value of fit:

1) root 81 17 absent (0.79012346 0.20987654)  
   2) Start>=8.5 62  6 absent (0.90322581 0.09677419)  
     4) Start>=14.5 29  0 absent (1.00000000 0.00000000) *
     5) Start< 14.5 33  6 absent (0.81818182 0.18181818)  
      10) Age< 55 12  0 absent (1.00000000 0.00000000) *
      11) Age>=55 21  6 absent (0.71428571 0.28571429)  
        22) Age>=111 14  2 absent (0.85714286 0.14285714) *
        23) Age< 111 7  3 present (0.42857143 0.57142857) *
   3) Start< 8.5 19  8 present (0.42105263 0.57894737) *

I tried save, dump and dput but they do not work and change tree's format. Is there any method to save the tree into a text file keeping its? sink does not work for me.


Solution

  • I used sink and it worked for me.

    sink("clipboard")  # works in Windows, substitute "clipboard" for file name
    print(fit)
    sink()
    

    Pasting from clipboard, I get

    n= 81 
    
    node), split, n, loss, yval, (yprob)
          * denotes terminal node
    
     1) root 81 17 absent (0.79012346 0.20987654)  
       2) Start>=8.5 62  6 absent (0.90322581 0.09677419)  
         4) Start>=14.5 29  0 absent (1.00000000 0.00000000) *
         5) Start< 14.5 33  6 absent (0.81818182 0.18181818)  
          10) Age< 55 12  0 absent (1.00000000 0.00000000) *
          11) Age>=55 21  6 absent (0.71428571 0.28571429)  
            22) Age>=111 14  2 absent (0.85714286 0.14285714) *
            23) Age< 111 7  3 present (0.42857143 0.57142857) *
       3) Start< 8.5 19  8 present (0.42105263 0.57894737) *
    

    Tested changing "clipboard" to a text file name, and had the same content above.

    Am wondering about your comment that sink didn't work for you, what was the problem / output?