#r #crosstab
#r #перекрестная таблица
Вопрос:
У меня есть фрейм данных likes
:
Gender Like
male yes
female no
female yes
other yes
male no
male no
female no
female yes
other no
male no
male yes
На основе этого фрейма данных я хотел бы нарисовать гистограмму, которая определяет каждый пол и количество «да» и «нет» для каждого пола (см. Рисунок)
Если я использую table(likes)
, я получаю таблицу, в которой указано количество ответов «да» и «нет» для каждого пола. Однако, если я использую plot(table(likes))
, я получаю действительно странный график, который трудно интерпретировать.
Что я могу сделать, чтобы получить такой результат?
Комментарии:
1. Что-то вроде:
ggplot(likes, aes(Gender, fill = Like)) geom_bar(position = "dodge")
2. привет, попробуйте
sjp.grpfrq
изsjplot
пакета strengejacke.de/sjPlot/reference/sjp.grpfrq.html3. Или, возможно statmethods.net/graphs/bar.html
4. Не совсем связано, но это гистограмма, а не гистограмма. Гистограмма — это определенный тип диаграммы, который показывает непрерывное распределение.
5. Вызов
plot
table
объекта приводит к созданию мозаичного графика. См?plot.table
. : «Это метод общей функции построения графика для (непредвиденных) табличных объектов. В то время как для двух- и более мерных таблиц рисуется мозаичная диаграмма, одномерные таблицы отображаются в виде столбцов. »
Ответ №1:
Вы можете сделать что-то вроде этого-
ggplot(data = dt)
aes(x = Gender, fill = Like)
geom_bar(position = "dodge")
scale_fill_brewer(palette = "YlGnBu")
theme_minimal()
geom_text(aes(label=..count..),stat='count',position=position_dodge(0.9))
Вывод-
Если вы хотите Like
, чтобы ваш labels
затем использовал это-
ggplot(data = dt)
aes(x = Gender, fill = Like)
geom_bar(position = "dodge")
scale_fill_brewer(palette = "YlGnBu")
theme_minimal()
geom_text(aes(label=paste(Like)),stat='count',position=position_dodge(0.9))
Вывод 2-