← Back to all sparks
T

timbr

ANALYTICS
Velocity0.0

Forest/Tree Data Frames

Three years dormant, timbr returns with dplyr verbs that finally respect tree structure

rdata structuresdplyrtree dataapi stability
Current state
timbr provides a 'forest' class for nested tree data in R, letting users navigate parent/child relationships with tidyverse-style verbs. After its last release in May 2023, the package sat untouched for over three years before 0.3.0 landed in July 2026. That release is dominated by correctness work on the structural invariants that everything else depends on.
Where it's heading
The arc is from a working prototype toward a class that behaves correctly under the full dplyr surface. 0.3.0 implements relocate(), rows_patch() and rows_update() for forests and makes select() always preserve the internal node column, closing the gaps where a standard verb would silently break the tree. The deprecation of map_forest() in favour of traverse(), begun in 0.2.2, is now complete.
Prediction
With the verb coverage gaps closed and the long deprecation cycle finished, the next release is likely to extend dplyr method coverage further rather than change the forest model. The entries do not indicate what prompted the three-year gap, so the sustainability of this cadence is unclear.

Recent moves

  1. 1mo ago

    Forests gain relocate/rows_patch/rows_update; map_forest now defunct

    The release that ends a three-year silence, and it spends that budget on structural correctness rather than new surface. relocate(), rows_patch() and rows_update() are implemented for forests, select() now always keeps the internal node column, and several bugs that could corrupt node bookkeeping during climb() or error on single-level trees are fixed. map_forest() becomes defunct, completing the deprecation started in 0.2.2.

    View source ↗
  2. 3y ago

    map_forest() renamed to traverse() and deprecated

    Starts the rename that 0.3.0 finishes, moving users from map_forest() to traverse() and updating as_tbl_graph.forest() behaviour. The deprecation window between this release and the defunct call in 0.3.0 ran over three years.

    View source ↗
  3. 3y ago

    Argument rename in rowwise.forest() and CRAN check fixes

    A maintenance patch: one argument rename in rowwise.forest() plus CRAN check fixes. No change to what forests can do.

    View source ↗
  4. 3y ago

    Forest headers now print the tree structure

    Adds tree structure display to the forest header, making the nesting visible at the console rather than inferred. A small ergonomic step on the same path 0.3.0 continues.

    View source ↗