Я хотел бы установить метки в ggplot2::scale_x_discrete()
(или аналогичный) динамически в рабочем процессе с одним конвейером, и, поскольку я терплю неудачу, похоже, я неправильно понимаю, как работают трубы. Я проиллюстрирую свой вопрос двумя приведенными ниже примерами, пример 1 работает нормально, а пример 2 - это мой желаемый способ написания кода. Я хотел бы манипулировать метками измененной переменной одним движением.
library(dplyr)
library(ggplot2)
Работает следующее. Как видите, я могу управлять уровнями disp
, обращаясь к промежуточным данным. Frame df
# Example 1
df <-
mtcars %>%
mutate(disp = cut(disp, breaks = 5))
df %>%
ggplot(aes(disp, hp)) +
geom_point() +
scale_x_discrete(labels = substring(levels(df$disp), 2, 4))
Но то, что я хотел бы написать, выглядит примерно так (не работает)
# Example 2
mtcars %>%
mutate(disp = cut(disp, breaks = 5)) %>%
ggplot(aes(disp, hp)) +
geom_point() +
scale_x_discrete(labels = substring(levels(.data$disp), 2, 4))
Что нужно писать вместо .data$disp
?