Ao usar uma função labeller no ggplot2, é possível aplicá-la somente quando o valor original for encontrado na tabela de consulta? No exemplo abaixo, estou usando as_labeller()
para renomear algumas das classes de carros. Qualquer coisa que não esteja na tabela de consulta assume o padrão "NA". Gostaria que mantivesse seu nome original. Isso é possível?
library(ggplot2)
#base plot without any labels
p <- ggplot(mpg, aes(displ, hwy)) + geom_point()
p + facet_wrap(~class)
#add fancy labels - but only for some classes
fancy_labs <- as_labeller(c('2seater' = 'Seats Two!', 'compact' = "Small Family Car"))
p + facet_wrap(~class, labeller = fancy_labs)
Gostaria que os cabeçalhos do segundo gráfico fossem: "Assentos dois!" "Carro pequeno para família", "médio", "minivan" (etc.)
Até onde eu sei, não vejo uma maneira fácil de especificar o valor padrão se as coisas não corresponderem a
as_labeller
, mas você também pode encapsular uma função como um rotulador e pode usardplyr::case_match
como um auxiliar. Por exemplo