Добро пожаловать в мир программирования с dplyr / ggplot2 / tidyverse.Вы можете узнать больше о деталях здесь , но следующее поможет вам:
library(tidyverse)
df <- read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/forest-fires/forestfires.csv")
plot_group <- function(df, grp) {
grp_var <- enquo(grp)
df %>%
count(!! grp_var) %>%
ggplot(aes(x = !!grp_var, y = n)) +
geom_col()
}
plot_group(df, month)
plot_group(df, day)
Примечание. Возможно, вы захотите перебрать month
и day
Сначала переменные, поэтому они располагаются в более ожидаемом порядке:
df <- df %>%
mutate(
month = fct_relevel(month, str_to_lower(month.abb)),
day = fct_relevel(day, c("sun", "mon", "tue", "wed", "thu", "fri", "sat"))
)