Skip to content

Broom tidies a number of lists that are effectively S3 objects without a class attribute. For example, stats::optim(), svd() and interp::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 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, they throw an error.

xyz lists (lists where x and y are vectors of coordinates and z is a matrix of values) are typically used by functions such as graphics::persp() or graphics::image() and returned by interpolation functions such as interp::interp().

Usage

tidy_xyz(x, ...)

Arguments

x

A list with component x, y and z, where x and y are vectors and z is a matrix. The length of x must equal the number of rows in z and the length of y must equal the number of columns in z.

...

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. Two exceptions here are:

  • tidy() methods will warn when supplied an exponentiate argument if it will be ignored.

  • augment() methods will warn when supplied a newdata argument if it will be ignored.

Value

A tibble::tibble with vector columns x, y and z.

Examples


A <- list(x = 1:5, y = 1:3, z = matrix(runif(5 * 3), nrow = 5))
image(A)

tidy(A)
#> # A tibble: 15 × 3
#>        x     y     z
#>    <int> <int> <dbl>
#>  1     1     1 0.527
#>  2     2     1 0.191
#>  3     3     1 0.355
#>  4     4     1 0.907
#>  5     5     1 0.141
#>  6     1     2 0.911
#>  7     2     2 0.590
#>  8     3     2 0.625
#>  9     4     2 0.225
#> 10     5     2 0.752
#> 11     1     3 0.362
#> 12     2     3 0.674
#> 13     3     3 0.268
#> 14     4     3 0.591
#> 15     5     3 0.443