R:在分组的条形图中绘制比例

时间:2016-02-09 22:37:22

标签: r plot

a = c(3, 4, 1, 2, 5, 6, 2)
b = c(1, 2, 1, 1, 1, 1, 1)
barplot(t(table(a, b)), beside = TRUE)

enter image description here

> table(a, b)
   b
a   1 2
  1 1 0
  2 2 0
  3 1 0
  4 0 1
  5 1 0
  6 1 0

而不是绘制计数,我想绘制比例。在向量b中,对于b = 1,总共有1 + 2 + 1 + 1 + 1 = 6个计数。因此对于第一个条(深灰色),我想要绘制1/6 = 0.17。对于第二个深灰色条,它将是2/6 = 0.33。在第4组中,浅灰色条将为1/1 = 1。基本上我想绘制这个表

   b
a      1 2
  1 0.17 0
  2 0.33 0
  3 0.17 0
  4 0    1
  5 0.17 0
  6 0.17 0

如何对表进行子集化以计算比例,然后将这些比例绘制成条形图?

1 个答案:

答案 0 :(得分:0)

首先,

t(table(a,b))

...是

table(b,a)

为了得到你想要的,雇用:

barplot(prop.table(table(b,a),margin=1), beside=TRUE)

这将给出每行的比例(margin=1)。如果您想要列比例,则可以设置此2