marginal total in tables

人走茶凉 提交于 2019-12-03 04:14:20

问题


I have a data frame with a number of infections identified from clinical isolates at different dates.

So far I have organised the data into a shape that I want to start working with. I am trying to prepare a series of tables of tables for the descriptive statistics of the report.

I have been using ftable and get the following:

onset.types <- ftable(SAB$Onset,SAB$MRSA.Type,year(SAB$Collection.Date))
                             2005 2006 2007 2008 2009 2010

Community                     454  472  512  499  525  512
          AUS-2/3-like         28   23   27   29   32   38
          EMRSA-15-like         9    4    4    9    8    8
          nmMRSA               40   47   53   39   64   60
          Other mMRSA           1    3    3   11    5    9
          unclassified MRSA     0    2    0    0    1    1
Hospital                      163  163  156  164  149  165
          AUS-2/3-like         31   33   27   31   29   28
          EMRSA-15-like         3    8    5    9    4    3
          nmMRSA               10    9   13   17   13   12
          Other mMRSA           5    1    6    2    3   10
          unclassified MRSA     2    0    1    0    0    0

Two questions:

1: How would I calculate marginal totals

2: Is there an easy way to calculate percentages as well as counts again with marginal totals

I have tried epitools and I did not find it as useful as I would have liked.

Many thanks.


回答1:


To add margins, use addmargins()

addmargins(table(state.division, state.region))
                    state.region
state.division       Northeast South North Central West Sum
  New England                6     0             0    0   6
  Middle Atlantic            3     0             0    0   3
  South Atlantic             0     8             0    0   8
  East South Central         0     4             0    0   4
  West South Central         0     4             0    0   4
  East North Central         0     0             5    0   5
  West North Central         0     0             7    0   7
  Mountain                   0     0             0    8   8
  Pacific                    0     0             0    5   5
  Sum                        9    16            12   13  50

To calculate percentages, use prop.table()

prop.table(table(state.division, state.region))
                    state.region
state.division       Northeast South North Central West
  New England             0.12  0.00          0.00 0.00
  Middle Atlantic         0.06  0.00          0.00 0.00
  South Atlantic          0.00  0.16          0.00 0.00
  East South Central      0.00  0.08          0.00 0.00
  West South Central      0.00  0.08          0.00 0.00
  East North Central      0.00  0.00          0.10 0.00
  West North Central      0.00  0.00          0.14 0.00
  Mountain                0.00  0.00          0.00 0.16
  Pacific                 0.00  0.00          0.00 0.10



回答2:


It also works with survey package's svytable().

addmargins(svytable(formula = ~x1+x2, design = df.w))


来源:https://stackoverflow.com/questions/6649004/marginal-total-in-tables

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!