R 分类/二进制数据和的直方图

R 分类/二进制数据和的直方图,r,ggplot2,histogram,R,Ggplot2,Histogram,我想要一种图形化且有吸引力的方式来表示二进制数据的列和,而不是表格格式。我似乎无法让它发挥作用,尽管有人会认为这将是一次上篮 数据如下所示(我尝试创建一个可复制的示例,但无法让代码填充0和1) 我只想对每列中的1进行计数(求和),沿x轴显示组名,沿y轴显示计数(求和),并使条形图具有漂亮的颜色。我已经在这里尝试了所有的解决方案,还有很多没有。由于值是二进制的,只需在base R中执行colSums,然后使用barplot barplot(colSums(df1), col = c("r

我想要一种图形化且有吸引力的方式来表示二进制数据的列和,而不是表格格式。我似乎无法让它发挥作用,尽管有人会认为这将是一次上篮

数据如下所示(我尝试创建一个可复制的示例,但无法让代码填充0和1)


我只想对每列中的1进行计数(求和),沿x轴显示组名,沿y轴显示计数(求和),并使条形图具有漂亮的颜色。我已经在这里尝试了所有的解决方案,还有很多没有。

由于值是二进制的,只需在
base R
中执行
colSums
,然后使用
barplot

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

数据
df1A
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')
结果:

尝试
barplot(colSums(df1))
尝试:
df%%>%gather(key,val)%%>%groupby(key)%%>%summary(Sum=Sum(val))%%>%ggplot(aes(key,Sum,fill=key))+geom\u col()
当然有效!我用的是ggplot2,但我对基本软件包没意见。只需要y轴上的粒度多一点,但我可以查一下。或者另一种方法我
summary\u all
gather
df%>%summary\u all(sum)%%>%gather%>%ggplot(,aes(x=key,y=value))+geom\u bar(stat='identity')
Wow!好的,我想是时候学习tidyverse或dplyr之类的了。我昨天应该问这个!
 library(tidyverse)

df %>% 
  gather(key,val) %>% 
  group_by(key) %>% 
  summarise(Sum=sum(val)) %>% 
  ggplot(aes(key,Sum,fill=key))+geom_col()
df %>% summarise_all(sum)
 %>% gather %>%
 ggplot(., aes(x = key, y = value)) + 
geom_bar(stat = 'identity')