2
Src=as.factor(c("nc","us","us","nc","nc","ci","nn","pr","nc","nc","ak","ak","ak","ak","ci","hv","ak","ci","nc","nc"))
Version = as.factor(c(0,4,7,0,0,0,9,0,0,0,1,1,1,1,0,2,1,0,0,0))
table(Src,Version)

输出:

    Version
Src  0 1 2 4 7 9
  ak 0 5 0 0 0 0
  ci 3 0 0 0 0 0
  hv 0 0 1 0 0 0
  nc 7 0 0 0 0 0
  nn 0 0 0 0 0 1
  pr 1 0 0 0 0 0
  us 0 0 0 1 1 0

我可以显示相对频率,而不是显示计数的数字吗?

4

3 回答 3

11

当然。您可以使用prop.table()以下效果:

prop.table(table(Src, Version))

这将产生一个表格,如:

    Version
Src     0    1    2    4    7    9
  ak 0.00 0.25 0.00 0.00 0.00 0.00
  ci 0.15 0.00 0.00 0.00 0.00 0.00
  hv 0.00 0.00 0.05 0.00 0.00 0.00
  nc 0.35 0.00 0.00 0.00 0.00 0.00
  nn 0.00 0.00 0.00 0.00 0.00 0.05
  pr 0.05 0.00 0.00 0.00 0.00 0.00
  us 0.00 0.00 0.00 0.05 0.05 0.00

您可以使用可选参数margin来请求行或列的相对频率。

于 2013-01-29T10:59:01.850 回答
5

这确实是一个常见问题解答。

只需将您的表除以其总和:

tab <- table(Src,Version)
tab/sum(tab)

另请参阅?prop.table

于 2013-01-29T10:56:16.147 回答
0

一种选择是使用barplotwithbeside=TRUE来显示组之间的相对差异(图表不会随比例选项而变化,只是比例)。

 barplot(table(Src,Version),beside=TRUE)

在此处输入图像描述

于 2013-01-29T10:56:30.303 回答