首页 > 解决方案 > 带有 dplyr/ggplot 的条形图,带有并排的男性/女性条

问题描述

我试图

这是示例:

df <- read.table(text = 
  "sex  var value
  m a   1
  m a   1
  m a   0
  m b   0
  m b   0
  f a   1
  f a   0
  f b   0
  f b   1", 
header = TRUE, 
stringsAsFactors = FALSE
  )

我想要创建的是一个条形图,其中包含每个var值的比例,每个sex.

所以在上面的数据中我会有:

var a : 
        m : 0.6
        f : 0.5
var b : 
        m : 0
        f : 0.5

但使用 ggplot 表示为条形图

标签: rggplot2dplyr

解决方案


使用tidyverse

df %>% 
group_by(var, sex) %>% 
summarise(vals = mean(value)) %>%
ungroup() %>% 
ggplot(aes(x = var, y = vals, col = sex, fill = sex, group = sex)) + 
geom_bar(stat = "identity")

您还可以反转varsex


推荐阅读