问题
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