Я не могу найти ответ на эту простую проблему:
Я хочу создать ggplot. Параметр aes
частично взят из вектора и частично назначен напрямую.
names(mydt)
"gender" "cat1" "category_b" "value"
category_a <- "cat1"
plot.sum <- mydt %>%
dplyr::group_by(category_a, category_b) %>%
ggplot(aes(x = category_a, y = N, fill = category_b)) +
geom_bar(position="stack", stat="identity")
plot.sum
Это не работает, и я получаю ошибку:
Ошибка: столбец category_a
неизвестен
Я предполагаю, что это потому, что R ожидает category_a
в быть столбцом в mydt
, и вместо этого он получает элемент символа из вектора "cat1", которого нет в mydt
- исправьте меня, если я ошибаюсь?
Как это может быть исправлено?
Конечная цель - сделать это функцией:
make.plot.sum <- function (data, group_by1, group_by2, position){
data %>%
dplyr::group_by(group_by1, group_by2) %>%
ggplot(aes(x = group_by1, y = N, fill = group_by2)) +
geom_bar(position="position", stat="identity")
plot.sum
return(plot.sum)
}
make.plot.sum(mydt, category_a, category_b, stack)