R中按组计算数据的条形图

时间:2015-03-31 14:39:17

标签: r plot

我试图在R中创建条形图,类似于this question.中的条形图如果可能的话,我宁愿不使用ggplot - 虽然我经常使用它,但这只是一个小线我创建的统计教程,而不是让每个人都安装更多的软件包。

这是我正在使用的数据框的一部分:

    Site Depth Substrate PoePres HaliPres Species
1      2   0.5      Sand       0        1  DMonte
2      2   0.5      Sand       0        1  DMonte
3      2   0.5      Sand       0        1  DMonte
4      2   0.5      Sand       0        1  DMonte
5      2   0.5      Sand       0        1  DMonte
6      2   0.5      Sand       0        1  DSandi
7      2   0.5      Sand       0        1  DSandi
8      2   0.5      Sand       0        1  DSandi
9      7   0.6      Sand       0        1  DMonte
10     7   0.6      Sand       0        1  DMonte
11     7   0.6      Sand       0        1  DMonte

有130个观测值,物种的三个等级,深度可达40英尺。我想创建一个条形图,只是为了能够可视化数据,沿x轴的深度和y轴的计数,因此对于每个深度的脚,并排绘制每个物种的总数。 (参考链接的问题,我的深度将是他们的触发器,而我的物种将是Rtime / Btime)。

我尝试使用barplot,hist,histogram甚至ggplot,所有这些都有各种各样的错误。显然我没有把握的东西,但几个小时的互联网搜索和实验并没有让我走得太远!

我很感激任何人都可以提供帮助。

1 个答案:

答案 0 :(得分:4)

在使用barplot等功能之前,您需要正确格式化数据。看?table。如果mydata是您的数据框:

tbl <- with(mydata, table(Species, Depth))

barplot(tbl, beside = TRUE, legend = TRUE)

enter image description here

或使用ggplot

library(ggplot2)
ggplot(as.data.frame(tbl), aes(factor(Depth), Freq, fill = Species)) +     
  geom_col(position = 'dodge')

enter image description here