R:如何在按性别分组后找到大于1的列的方法?

时间:2017-04-09 18:17:57

标签: r ggplot2 dplyr bar-chart reshape2

我如何按性别对下面的数据样本进行分组,并计算这些组中每个类型列的计算方法,只考虑那些大于1的值?最后,我想绘制一个横向独立的类型的条形图,每个类型都有两个对应于每个性别分类的条形图。

动作|冒险|动画|儿童|喜剧|性别

0 | 5 | 0 | 0 | 0 |中号

0 | 0 | 1 | 2 | 3 |中号

2 | 3 | 0 | 0 | 4 | ˚F

0 | 0 | 0 | 2 | 0 |中号

4 | 0 | 3 | 0 | 2 | ˚F

4 | 4 | 0 | 0 | 0 | ˚F

我知道varipus可能解决这个问题的方法,但我正在寻找一个可以直接在ggplot或其他绘图函数中执行的紧凑代码,而不是必须对数据进行预处理然后使用这些来绘制。但是,任何明智的方法都受到欢迎。

1 个答案:

答案 0 :(得分:2)

你可以尝试:

library(tidyr)
library(dplyr)
library(ggplot2)

df %>%
  gather(key, value, -Gender) %>%
  filter(value > 1) %>%
  group_by(Gender, key) %>%
  summarise(value = mean(value)) %>%
  ggplot(aes(key, value)) + 
  geom_bar(aes(fill = Gender), 
           position = "dodge", stat = "identity")

给出了:

enter image description here