如何子集或汇总大量数据,所以我可以做单独的饼图(How to subset or aggregate

2019-09-26 14:23发布

我的数据是这样的:

Trip_Set   sex
119_4      hembra
119_4      hembra
119_7      hembra
161_7      macho
193_8      hembra
255_7      macho
271_6      hembra
271_6      macho
271_6      hembra
328_7      hembra
403_3      hembra
428_2      hembra
655_4      hembra

正如你所看到的,每个Trip_Set有一些男性或女性(有的只是有一个)。 我想使一个单独的饼图每一行设置为显示。男女对每个比率。 这只是我的数据集的片段(真正的一个是与数百Trip_Sets大得多)。

我的饼图代码是这样的:

数据= dframe2

library(ggplot2)
pie <- ggplot(dframe2, aes(x=1, y=Trip_Set, fill=sex)) +
  geom_bar(stat="identity") +
  ggtitle("Sex ratio per line")

pie <- pie + coord_polar(theta='y')
print(pie)

然而,这只是绘制所有上文所示我希望能够做一个饼图每个Trip_Set数据的饼图。 我已成功地创建一个子集,然后使用下面的代码运行饼图代码手动执行此操作:

Trip119_4<-subset(dframe2,Trip_Set=='119_4')
pie <- ggplot(Trip119_4, aes(x=1, y=Trip_Set, fill=sex)) +
  geom_bar(stat="identity") +
  ggtitle("Sex ratio per line")

pie <- pie + coord_polar(theta='y')
print(pie)

有没有一种方法,我可以做的每个单独Trip_Set饼状图,而不必输入,并重新命名数百反复的子集? 有人提到聚合函数,但对我的生命,我不能让它开始工作。

Answer 1:

你可能想看看facet_wrap -我认为下面是最有效的,如果我理解正确的问题:

ggplot(data=df, aes(x=sex, fill=sex)) +
  geom_bar(stat="bin") +
  facet_wrap(~ Trip_Set)

你也可以构建这样说:

ggplot(data=df, aes(x=Trip_Set, fill=sex)) +
  geom_bar(stat="bin")


文章来源: How to subset or aggregate large amounts of data so I can make separate pie charts