Easy Creation of Tables of Percentages

Share:

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
percentages(obj, ...)
## S3 method for class 'table'
percentages(obj,
      by=NULL, which=NULL, se=FALSE, ci=FALSE, ci.level=.95, ...)
## S3 method for class 'formula'
percentages(obj,
      data=parent.frame(), weights=NULL, ...)
## S3 method for class 'percentage.table'
as.data.frame(x, ...)
## S3 method for class '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 logicla 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 character string with the name of a variable containing weights.

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Two equivalent ways to create the same table
100*prop.table(UCBAdmissions)
percentages(UCBAdmissions)

# Three equivalent ways to create the same table
100*prop.table(UCBAdmissions,c(2,3))
(p0 <- percentages(UCBAdmissions,by=c("Gender","Dept")))
percentages(UCBAdmissions,which="Admit")
# Percentage table as data frame
as.data.frame(p0)

# Three equivalent ways to create the same table
100*prop.table(margin.table(UCBAdmissions,c(1,2)),2)
percentages(UCBAdmissions,which="Admit",by="Gender")
percentages(Admit~Gender,data=UCBAdmissions)

# Three equivalent ways to create the same table
100*prop.table(margin.table(UCBAdmissions,c(1,3)),2)
percentages(Admit~Dept,data=UCBAdmissions)
percentages(Admit~Dept,data=as.data.frame(UCBAdmissions),
            weights="Freq")

# Standard errors and confidence intervals
percentages(Admit~Dept,data=UCBAdmissions,se=TRUE)
percentages(Admit~Dept,data=UCBAdmissions,ci=TRUE)
(p<- percentages(Admit~Dept,data=UCBAdmissions,ci=TRUE,se=TRUE))

# An extended table of percentages as data frame
as.data.frame(p)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.