2

Here is a ranger call:

rf_fit <- 
  rf_mod %>% 
  fit(my_outcome_factor ~ ., data = data_train)

and the output:

Error in parse.formula(formula, data, env = parent.frame()) : 
  Error: Illegal column names in formula interface. Fix column names or use alternative interface in ranger.

How can I tell which columns are illegal?

I tried setting up a function foo() to debug:

foo <- function() {
  browser()
  ranger:::parse.formula(my_outcome_factor ~ ., data = data_train)
}

This function didn't help me much, because I don't know how to get a breakpoint in the right spot.

It's ranger version 0.12.1.

dfrankow
  • 20,191
  • 41
  • 152
  • 214
  • 4
    You could try using `janitor::clean_names()` to rename column names to legal formats.https://cran.r-project.org/web/packages/janitor/vignettes/janitor.html#clean-data.frame-names-with-clean_names – hnagaty Oct 15 '20 at 06:11
  • Love this answer! – stats_noob Aug 04 '21 at 07:03

1 Answers1

0

I have encountered this error when mistakenly trying to feed ranger column names that start with a numeric. Adding a character prefix solved it.