首页 文章

如何绘制相对频率表

提问于
浏览
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

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

3 回答

  • 0

    当然 . 你可以使用 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 来请求行或列相对频率 .

  • 9

    那确实是一个FAQ .

    只需将表格除以其总和即可:

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

    另见 ?prop.table .

  • 3

    一种选择是使用 barplotbeside=TRUE 来显示组之间的相对(图表不会随比例选项,只是比例)更改 .

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

    enter image description here

相关问题