ggplot2
                                
                                 ggplot2 copied to clipboard
                                
                                    ggplot2 copied to clipboard
                            
                            
                            
                        Improve behaviour when `labeller()` does not find a match in lookup table
Currently, ggplot2::labeller() silently labels the facets with "NA" if the user supplies unnamed character vectors.
library(ggplot2)
ggplot(ToothGrowth, aes(y = len)) + 
  geom_boxplot() +
  facet_wrap(vars(supp), labeller = labeller(supp = c("orange juice yum", "vitamin C yuck")))

If there is a typo in the name (or if there just isn't a new label defined in the vector), the same thing happens: "NA" is given as a title.
library(ggplot2)
ggplot(ToothGrowth, aes(y = len)) + 
  geom_boxplot() +
  facet_wrap(vars(supp), labeller = labeller(supp = c("OJ" = "orange juice yum", "vC" = "vitamin C yuck")))

I am not sure what would be most appropriate, but I would have expected to get something like this:
Warning: labeller() could not match one or more of the original labels. The facets were titled "NA".
ℹ: did you forget to provide a named character vector, or are some labels missing from the lookup table?
The function allows using lookup tables that include superfluous data, which is probably good for flexibility, but I think that naming a facet with "NA" should throw a warning, or at least a message, when the is not enough data.
Or should the default behaviour change to using the original label if no match is found, allowing the use of partial lookup tables? I can see people wanting to only cherry pick a couple of labels to replace.
Using:
- ggplot2 3.3.5
- R 4.1.1