percentages memisc 0.99.26.3

# Easy Creation of Tables of Percentages¶

## Description¶

The generic function `percentages` and its methods create one- or multidimensional tables of percentages. As such, the function `percentages` can be viewed as a convenience interface to `prop.table`. However, it also allows to obtain standard errors and confidence intervals.

## Usage¶

```percentages(obj, ...)
## S4 method for signature 'table'
percentages(obj,
by=NULL, which=NULL, se=FALSE, ci=FALSE, ci.level=.95, ...)
## S4 method for signature 'formula'
percentages(obj,
data=parent.frame(), weights=NULL, ...)
## S4 method for signature 'percentage.table'
as.data.frame(x, ...)
## S4 method for signature 'xpercentage.table'
as.data.frame(x, ...)
```

## Arguments¶

`obj`

an object; a contingency table or a formula. If it is a formula, its left-hand side determines the factor or combination of factors for which percentages are computed while its right-hand side determines the factor or combination of factors that define the groups within which percentages are computed.

`by`

a character vector with the names of the factor variables that define the groups within which percentages are computed. Percentages sum to 100 within combination of levels of these factors.

`which`

a character vector with the names of the factor variables for which percentages are computed.

`se`

a logical value; determines whether standard errors are computed.

`ci`

a logical value; determines whether confidence intervals are computed. Note that the confidence intervals are for infinite (or very large) populations.

`ci.level`

a numerical value, the required confidence level of the confidence intervals.

`data`

a contingency table (an object that inherits from “table”) or a data frame or an object coercable into a data frame.

`weights`

an optional vector of weights. Should be NULL or a numeric vector.

`x`

an object coerced into a data frame.

`...`

Further arguments, ignored.

## Value¶

An array that inherits classes “percentage.table” and “table”. If `percentages` was called with `se=TRUE` or `ci=TRUE` then the result additionally inherits class “xpercentage.table”.

## Examples¶

```# Two equivalent ways to create the same table
```
```, , Dept = A

Gender
Rejected  6.9155988  0.4197967

, , Dept = B

Gender
Rejected  4.5735749  0.1767565

, , Dept = C

Gender
Rejected  4.5293858  8.6389748

, , Dept = D

Gender
Rejected  6.1643836  5.3910738

, , Dept = E

Gender
Rejected  3.0490499  6.6062749

, , Dept = F

Gender
Rejected  7.7551922  7.0039770
```
```percentages(UCBAdmissions)
```
```, , Dept = A

Gender
Rejected  6.9155988  0.4197967

, , Dept = B

Gender
Rejected  4.5735749  0.1767565

, , Dept = C

Gender
Rejected  4.5293858  8.6389748

, , Dept = D

Gender
Rejected  6.1643836  5.3910738

, , Dept = E

Gender
Rejected  3.0490499  6.6062749

, , Dept = F

Gender
Rejected  7.7551922  7.0039770
```
```# Three equivalent ways to create the same table
```
```, , Dept = A

Gender
Rejected 37.939394 17.592593

, , Dept = B

Gender
Rejected 36.964286 32.000000

, , Dept = C

Gender
Rejected 63.076923 65.935919

, , Dept = D

Gender
Rejected 66.906475 65.066667

, , Dept = E

Gender
Rejected 72.251309 76.081425

, , Dept = F

Gender
Rejected 94.101877 92.961877
```
```(p0 <- percentages(UCBAdmissions,by=c("Gender","Dept")))
```
```, , Dept = A

Gender
Rejected 37.939394 17.592593

, , Dept = B

Gender
Rejected 36.964286 32.000000

, , Dept = C

Gender
Rejected 63.076923 65.935919

, , Dept = D

Gender
Rejected 66.906475 65.066667

, , Dept = E

Gender
Rejected 72.251309 76.081425

, , Dept = F

Gender
Rejected 94.101877 92.961877
```
```percentages(UCBAdmissions,which="Admit")
```
```, , Dept = A

Gender
Rejected 37.939394 17.592593

, , Dept = B

Gender
Rejected 36.964286 32.000000

, , Dept = C

Gender
Rejected 63.076923 65.935919

, , Dept = D

Gender
Rejected 66.906475 65.066667

, , Dept = E

Gender
Rejected 72.251309 76.081425

, , Dept = F

Gender
Rejected 94.101877 92.961877
```
```# Percentage table as data frame
as.data.frame(p0)
```
```      Admit Gender Dept Percentage
2  Rejected   Male    A  37.939394
4  Rejected Female    A  17.592593
6  Rejected   Male    B  36.964286
8  Rejected Female    B  32.000000
10 Rejected   Male    C  63.076923
12 Rejected Female    C  65.935919
14 Rejected   Male    D  66.906475
16 Rejected Female    D  65.066667
18 Rejected   Male    E  72.251309
20 Rejected Female    E  76.081425
22 Rejected   Male    F  94.101877
24 Rejected Female    F  92.961877
```
```# Three equivalent ways to create the same table
```
```          Gender
Rejected 55.48123 69.64578
```
```percentages(UCBAdmissions,which="Admit",by="Gender")
```
```          Gender
Rejected 55.48123 69.64578
```
```percentages(Admit~Gender,data=UCBAdmissions)
```
```          Gender
Rejected 55.48123 69.64578
```
```# Three equivalent ways to create the same table
```
```          Dept
Admit              A         B         C         D         E         F
Admitted 64.415863 63.247863 35.076253 33.964646 25.171233  6.442577
Rejected 35.584137 36.752137 64.923747 66.035354 74.828767 93.557423
```
```percentages(Admit~Dept,data=UCBAdmissions)
```
```          Dept
Admit              A         B         C         D         E         F
Admitted 64.415863 63.247863 35.076253 33.964646 25.171233  6.442577
Rejected 35.584137 36.752137 64.923747 66.035354 74.828767 93.557423
```
```percentages(Admit~Dept,data=as.data.frame(UCBAdmissions),
weights=Freq)
```
```          Dept
Admit              A         B         C         D         E         F
Admitted 64.415863 63.247863 35.076253 33.964646 25.171233  6.442577
Rejected 35.584137 36.752137 64.923747 66.035354 74.828767 93.557423
```
```# Standard errors and confidence intervals
```
```, , Result = Percentage

Dept
Admit               A          B          C          D          E          F
Admitted 64.4158628 63.2478632 35.0762527 33.9646465 25.1712329  6.4425770
Rejected 35.5841372 36.7521368 64.9237473 66.0353535 74.8287671 93.5574230

, , Result = SE

Dept
Admit               A          B          C          D          E          F
Admitted  1.5674143  1.9933625  1.5750235  1.6828260  1.7958916  0.9187976
Rejected  1.5674143  1.9933625  1.5750235  1.6828260  1.7958916  0.9187976
```
```percentages(Admit~Dept,data=UCBAdmissions,ci=TRUE)
```
```, , Result = Percentage

Dept
Admit              A         B         C         D         E         F
Admitted 64.415863 63.247863 35.076253 33.964646 25.171233  6.442577
Rejected 35.584137 36.752137 64.923747 66.035354 74.828767 93.557423

, , Result = Lower bound

Dept
Admit              A         B         C         D         E         F
Admitted 61.248477 59.196386 31.986890 30.668157 21.698820  4.755024
Rejected 32.508100 32.835173 61.738250 62.618938 71.103049 91.499717

, , Result = Upper bound

Dept
Admit              A         B         C         D         E         F
Admitted 67.491900 67.164827 38.261750 37.381062 28.896951  8.500283
Rejected 38.751523 40.803614 68.013110 69.331843 78.301180 95.244976
```
```(p<- percentages(Admit~Dept,data=UCBAdmissions,ci=TRUE,se=TRUE))
```
```, , Result = Percentage

Dept
Admit               A          B          C          D          E          F
Admitted 64.4158628 63.2478632 35.0762527 33.9646465 25.1712329  6.4425770
Rejected 35.5841372 36.7521368 64.9237473 66.0353535 74.8287671 93.5574230

, , Result = SE

Dept
Admit               A          B          C          D          E          F
Admitted  1.5674143  1.9933625  1.5750235  1.6828260  1.7958916  0.9187976
Rejected  1.5674143  1.9933625  1.5750235  1.6828260  1.7958916  0.9187976

, , Result = Lower bound

Dept
Admit               A          B          C          D          E          F
Admitted 61.2484768 59.1963862 31.9868896 30.6681566 21.6988202  4.7550241
Rejected 32.5081003 32.8351731 61.7382497 62.6189380 71.1030491 91.4997166

, , Result = Upper bound

Dept
Admit               A          B          C          D          E          F
Admitted 67.4918997 67.1648269 38.2617503 37.3810620 28.8969509  8.5002834
Rejected 38.7515232 40.8036138 68.0131104 69.3318434 78.3011798 95.2449759
```
```# An extended table of percentages as data frame
as.data.frame(p)
```
```      Admit Dept Percentage        SE Lower bound Upper bound
1  Admitted    A  64.415863 1.5674143   61.248477   67.491900
2  Admitted    B  63.247863 1.9933625   59.196386   67.164827
3  Admitted    C  35.076253 1.5750235   31.986890   38.261750
4  Admitted    D  33.964646 1.6828260   30.668157   37.381062
5  Admitted    E  25.171233 1.7958916   21.698820   28.896951
6  Admitted    F   6.442577 0.9187976    4.755024    8.500283
7  Rejected    A  35.584137 1.5674143   32.508100   38.751523
8  Rejected    B  36.752137 1.9933625   32.835173   40.803614
9  Rejected    C  64.923747 1.5750235   61.738250   68.013110
10 Rejected    D  66.035354 1.6828260   62.618938   69.331843
11 Rejected    E  74.828767 1.7958916   71.103049   78.301180
12 Rejected    F  93.557423 0.9187976   91.499717   95.244976
```