|
1 | 1 | Package: ggRandomForests |
2 | | -Version: 2.7.0 |
| 2 | +Version: 2.8.0 |
| 3 | + |
| 4 | +ggRandomForests v2.8.0 |
| 5 | +===================== |
| 6 | +* S3 design overhaul: `gg_partial()`, `gg_partialpro()`, and |
| 7 | + `gg_partial_rfsrc()` now stamp their return values with S3 classes |
| 8 | + (`gg_partial`, `gg_partialpro`, `gg_partial_rfsrc` respectively), enabling |
| 9 | + `plot()` dispatch without any boilerplate. |
| 10 | +* Add `plot.gg_partial()`, `plot.gg_partial_rfsrc()`, and |
| 11 | + `plot.gg_partialpro()` S3 methods; continuous predictors render as line |
| 12 | + plots, categorical as bar charts, faceted by variable name. Survival |
| 13 | + forests produce curves over time; two-variable surface plots group by |
| 14 | + `xvar2.name`. |
| 15 | +* Convert `gg_survival()` to an S3 generic dispatching on the class of its |
| 16 | + first argument. New `gg_survival.rfsrc()` method extracts the survival |
| 17 | + response directly from the fitted forest (no separate data argument |
| 18 | + needed); `gg_survival.default()` preserves the existing interface. |
| 19 | +* Fix `plot.gg_survival()` auto-coercion: previously called |
| 20 | + `gg_survival(rfsrc_obj)` treating the forest as the `interval` string |
| 21 | + argument, causing a latent crash; replaced with `inherits()` guard. |
| 22 | +* Deprecate `surv_partial.rfsrc()` via `.Deprecated()` with a pointer to |
| 23 | + `gg_partial_rfsrc()`; all package tests updated to suppress the warning. |
| 24 | +* Fix `gg_partial_rfsrc()` — `make_eval_grid()` used `unlist(dplyr::select())` |
| 25 | + which coerced factor columns to integer codes; now uses `newx[[xname]]` to |
| 26 | + preserve column class. Categorical detection extended to cover |
| 27 | + `is.factor()` and `is.character()` in addition to the cardinality check. |
| 28 | +* Add guards to `gg_partial_rfsrc()`: all-NA `xval` after NA removal now |
| 29 | + emits a warning and skips the variable; all-NA grouping variable (`xvar2`) |
| 30 | + calls `stop()`; `n_eval` and `cat_limit` are validated as single integers |
| 31 | + >= 2 near function entry. |
| 32 | +* Fix cyclomatic complexity across `gg_partial_rfsrc.R`: refactored into |
| 33 | + eight top-level unexported helpers (`validate_scalar_int`, |
| 34 | + `validate_partial_args`, `snap_partial_time`, `make_eval_grid`, |
| 35 | + `call_partial_rfsrc`, `partial_one_var`, `partial_no_group`, |
| 36 | + `partial_with_group`, `split_partial_result`); all functions now score |
| 37 | + below the `cyclocomp_linter` limit of 20. |
| 38 | +* Fix `@param partial.time` documentation: "see the section above" corrected |
| 39 | + to "see the section below". |
| 40 | +* Replace deprecated `tidyr::gather()` with `tidyr::pivot_longer()` in |
| 41 | + `plot.gg_vimp()` and `plot.gg_partialpro()`. |
| 42 | +* Add `gg_survival.rfsrc`, `gg_survival.default`, `plot.gg_partial`, |
| 43 | + `plot.gg_partial_rfsrc`, and `plot.gg_partialpro` to `NAMESPACE`; add |
| 44 | + corresponding `@rdname` / `@export` roxygen tags. |
| 45 | +* Update tests: add `expect_s3_class()` checks for all new classes; add |
| 46 | + `plot()` smoke tests for `gg_partial`, `gg_partial_rfsrc`, `gg_partialpro`; |
| 47 | + add `gg_survival.rfsrc` tests for KM extraction, `by` stratification, and |
| 48 | + error on non-survival forest. |
| 49 | +* Add `plot.gg_partial`, `plot.gg_partial_rfsrc`, and `plot.gg_partialpro` |
| 50 | + to `_pkgdown.yml` reference index. |
3 | 51 |
|
4 | 52 | ggRandomForests v2.7.0 |
5 | 53 | ===================== |
|
0 commit comments