diff --git a/NEWS.md b/NEWS.md index 03caddc347..5820554735 100644 --- a/NEWS.md +++ b/NEWS.md @@ -126,6 +126,9 @@ * The scale arguments `limits`, `breaks`, `minor_breaks`, `labels`, `rescaler` and `oob` now accept purrr style lambda notation (@teunbrand, #4427). + +* `as_labeller()` (and therefore also `labeller()`) now handles functions in + purrr-style lambda notation (@netique, #4188). # ggplot2 3.3.3 This is a small patch release mainly intended to address changes in R and CRAN. diff --git a/R/labeller.r b/R/labeller.r index c4f93f0da8..447bcc07f7 100644 --- a/R/labeller.r +++ b/R/labeller.r @@ -318,6 +318,8 @@ as_labeller <- function(x, default = label_value, multi_line = TRUE) { x(labels) } else if (is.function(x)) { default(lapply(labels, x)) + } else if (is.formula(x)) { + default(lapply(labels, as_function(x))) } else if (is.character(x)) { default(lapply(labels, function(label) x[label])) } else {