treeInfo: Tree information in human readable format

Description Usage Arguments Details Value Author(s) See Also Examples

View source: R/treeInfo.R


Extract tree information of a ranger object.


treeInfo(object, tree = 1)



ranger object.


Number of the tree of interest.


Node and variable ID's are 0-indexed, i.e., node 0 is the root node. If the formula interface is used in the ranger call, the variable ID's are usually different to the original data used to grow the tree. Refer to the variable name instead to be sure.

Splitting at unordered factors (nominal variables) depends on the option respect.unordered.factors in the ranger call. For the "ignore" and "order" approaches, all values smaller or equal the splitval value go to the left and all values larger go to the right, as usual. However, with "order" the values correspond to the order in object$forest$covariate.levels instead of the original order (usually alphabetical). In the "partition" mode, the splitval values for unordered factor are comma separated lists of values, representing the factor levels (in the original order) going to the right.


A data.frame with the columns

nodeID The nodeID, 0-indexed.
leftChild ID of the left child node, 0-indexed.
rightChild ID of the right child node, 0-indexed.
splitvarID ID of the splitting variable, 0-indexed. Caution, the variable order changes if the formula interface is used.
splitvarName Name of the splitting variable.
splitval The splitting value. For numeric or ordinal variables, all values smaller or equal go to the left, larger values to the right. For unordered factor variables see above.
terminal Logical, TRUE for terminal nodes.
prediction One column with the predicted class (factor) for classification and the predicted numerical value for regression. One probability per class for probability estimation in several columns. Nothing for survival, refer to object$forest$chf for the CHF node predictions.


Marvin N. Wright

See Also



rf <- ranger(Species ~ ., data = iris)
treeInfo(rf, 1)

Example output

   nodeID leftChild rightChild splitvarID splitvarName splitval terminal
1       0         1          2          3 Petal.Length     2.45    FALSE
2       1        NA         NA         NA         <NA>       NA     TRUE
3       2         3          4          1 Sepal.Length     6.05    FALSE
4       3         5          6          1 Sepal.Length     5.75    FALSE
5       4         7          8          3 Petal.Length     4.95    FALSE
6       5         9         10          4  Petal.Width     1.70    FALSE
7       6        11         12          3 Petal.Length     4.80    FALSE
8       7        13         14          4  Petal.Width     1.70    FALSE
9       8        NA         NA         NA         <NA>       NA     TRUE
10      9        NA         NA         NA         <NA>       NA     TRUE
11     10        NA         NA         NA         <NA>       NA     TRUE
12     11        NA         NA         NA         <NA>       NA     TRUE
13     12        NA         NA         NA         <NA>       NA     TRUE
14     13        NA         NA         NA         <NA>       NA     TRUE
15     14        NA         NA         NA         <NA>       NA     TRUE
1        <NA>
2      setosa
3        <NA>
4        <NA>
5        <NA>
6        <NA>
7        <NA>
8        <NA>
9   virginica
10 versicolor
11  virginica
12 versicolor
13  virginica
14 versicolor
15  virginica

ranger documentation built on Jan. 11, 2020, 9:21 a.m.

Related to treeInfo in ranger...