Нужна помощь в построении ggplot процента категорий в кадре данных в R - PullRequest
0 голосов
/ 10 ноября 2019

У меня есть фрейм данных, который имеет некоторое количество столбцов. У каждого из этих столбцов есть значения, которые являются категориальными - Да, Нейтрально и Нет. Ниже приведен пример кадра данных:

a = c('yes', 'yes', 'no', 'neutral', 'no', 'yes','no','neutral','neutral')
b = c('no', 'yes','no', 'no', 'no', 'neutral', 'yes', 'neutral','neutral')
abcd = data.frame(a,b)

Я хочу построить график ggplot - сгруппированный (отредактированный из сложенного) линейный график, которыйговорит о - число да, нет и нейтрально и аналогично для б. Существует много столбцов, поэтому geom_bar () для каждого столбца невозможен

Ответы [ 2 ]

0 голосов
/ 10 ноября 2019

вам нужно сделать его длинным форматом, используя pivot_longer (или собрать или растаять, в зависимости от того, что вы предпочитаете), а затем

library(dplyr)
# everything means all columns, like your case
abcd %>% 
pivot_longer(everything()) %>% 
ggplot() + geom_bar(aes(x=name,fill=value))

enter image description here

0 голосов
/ 10 ноября 2019

Вот один из способов:

library(ggplot2)
library(tidyr)
abcd %>% 
  gather(key = "letter", value = "Response") %>% 
  ggplot(aes(letter, fill = Response)) + 
  geom_bar()

enter image description here

...