Reputation: 44658
I create convenience packages with functions specific to different companies that I work with. I'd like to be able to load ggplot2 themes and geom defaults when I load those libraries.
For example:
update_geom_defaults("line", list(size = 2))
update_geom_defaults("bar", list(fill="#BEBADA",colour="#000000"))
update_geom_defaults("text", list(colour="#333333"))
scale_colour_discrete <- function(...) scale_colour_brewer(..., palette="Set2")
scale_fill_discrete <- function(...) scale_fill_brewer(... , palette="Set2")
Right now, I have to remember to retype this every time I do a quick analysis, and I'd like to make it more DRY.
How would I go about forcing these elements to load when the package does?
pseudocode:
library(convenience.lib)
## run the above ##
Upvotes: 2
Views: 261
Reputation: 44658
Simple add an .onLoad function to your package, for example:
.onLoad <- function(libname = find.package("mypackage"), pkgname = "mypackage") {
update_geom_defaults("line", list(size = 2))
update_geom_defaults("bar", list(fill="#BEBADA",colour="#000000"))
update_geom_defaults("text", list(colour="#333333"))
scale_colour_discrete <- function(...) scale_colour_brewer(..., palette="Set2")
scale_fill_discrete <- function(...) scale_fill_brewer(... , palette="Set2")
}
Upvotes: 1