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)
> 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
如何对表进行子集化以计算比例,然后将这些比例绘制成条形图?
答案 0 :(得分:0)
首先,
t(table(a,b))
...是
table(b,a)
为了得到你想要的,雇用:
barplot(prop.table(table(b,a),margin=1), beside=TRUE)
这将给出每行的比例(margin=1
)。如果您想要列比例,则可以设置此2
。