Мне нужен был графический и привлекательный способ представления сумм столбцов для двоичных данных, а не в табличном формате. Я не могу заставить его работать, хотя можно подумать, что это простоя.

Данные выглядят так (я пытался создать воспроизводимый пример, но не смог заставить код заполняться нулями и единицами).

G1 G2 G3 G4
1  0  0  1
0  1  1  1
1  1  0  0
0  1  0  1

Я просто хочу подсчитать (суммировать) 1-е в каждом столбце, отобразить имена групп вдоль оси X, количество (суммы) вдоль оси Y и сделать столбцы красивыми цветами. Я попробовал каждое решение здесь и многие, которые не являются.

4
Ryan 16 Авг 2019 в 17:19

2 ответа

Лучший ответ

tidyverse подход:

 library(tidyverse)

df %>% 
  gather(key,val) %>% 
  group_by(key) %>% 
  summarise(Sum=sum(val)) %>% 
  ggplot(aes(key,Sum,fill=key))+geom_col()

Или как предложено @akrun:

df %>% summarise_all(sum)
 %>% gather %>%
 ggplot(., aes(x = key, y = value)) + 
geom_bar(stat = 'identity')

Результат : введите описание изображения здесь

3
NelsonGon 16 Авг 2019 в 14:28

Поскольку значения являются двоичными, просто выполните colSums в base R и затем используйте barplot

barplot(colSums(df1), col = c("red", "blue", "green", "yellow"))

enter image description here

Данные

df1 <- structure(list(G1 = c(1L, 0L, 1L, 0L), G2 = c(0L, 1L, 1L, 1L), 
    G3 = c(0L, 1L, 0L, 0L), G4 = c(1L, 1L, 0L, 1L)), class = "data.frame", row.names = c(NA, 
-4L))
3
akrun 16 Авг 2019 в 14:22