10.10 Useful Examples - Wrapper
Useful when…
- You want to create a function that wraps a bunch of other functions
For example, ggsave()
wraps a bunch of different graphics device functions:
# (Even more simplified)
plot_dev <- function(ext, dpi = 96) {
force(dpi)
switch(
ext,
svg = function(filename, ...) svglite::svglite(file = filename, ...),
png = function(...) grDevices::png(..., res = dpi, units = "in"),
jpg = ,
jpeg = function(...) grDevices::jpeg(..., res = dpi, units = "in"),
stop("Unknown graphics extension: ", ext, call. = FALSE)
)
}
Then ggsave()
uses
ggsave <- function(...) {
dev <- plot_dev(device, filename, dpi = dpi)
...
dev(filename = filename, width = dim[1], height = dim[2], bg = bg, ...)
...
}
Otherwise, would have to do something like like a bunch of if/else statements.