Broom tidies a number of lists that are effectively S3 objects without a class attribute. For example, stats::optim(), svd() and akima::interp() produce consistent output, but because they do not have a class attribute, they cannot be handled by S3 dispatch.

These functions look at the elements of a list and determine if there is an appropriate tidying method to apply to the list. Those tidiers are themselves are implemented as functions of the form tidy_<function> or glance_<function> and are not exported (but they are documented!).

If no appropriate tidying method is found, throws an error.

glance_optim(x, ...)



A list returned from stats::optim().


Additional arguments. Not used. Needed to match generic signature only. Cautionary note: Misspelled arguments will be absorbed in ..., where they will be ignored. If the misspelled argument has a default value, the default value will be used. For example, if you pass conf.lvel = 0.9, all computation will proceed using conf.level = 0.95. Additionally, if you pass newdata = my_tibble to an augment() method that does not accept a newdata argument, it will use the default value for the data argument.

See also


A tibble::tibble() with exactly one row and columns:


Convergence code.


number of calls to `fn`


number of calls to `gr`


minimized or maximized output value


f <- function(x) (x[1] - 2)^2 + (x[2] - 3)^2 + (x[3] - 8)^2 o <- optim(c(1, 1, 1), f) tidy(o)
#> # A tibble: 3 x 2 #> parameter value #> <chr> <dbl> #> 1 parameter1 2.00 #> 2 parameter2 3.00 #> 3 parameter3 8.00
#> # A tibble: 1 x 4 #> value function.count gradient.count convergence #> <dbl> <int> <int> <int> #> 1 0.000000368 144 NA 0