Table of Percentages with Percentage Base
percent.Rd
percent
returns a table of percentages along with
the percentage base. It will be useful
in conjunction with Aggregate
or genTable
.
Usage
percent(x,...)
# S3 method for default
percent(x,weights=NULL,total=!(se || ci),
se=FALSE,ci=FALSE,ci.level=.95,
total.name="N",perc.label="Percentage",...)
# S3 method for logical
percent(x,weights=NULL,total=!(se || ci),
se=FALSE,ci=FALSE,ci.level=.95,
total.name="N",perc.label="Percentage",...)
Arguments
- x
a numeric vector or factor.
- weights
a optional numeric vector of weights of the same length as
x
.- total
logical; should the total sum of counts from which the percentages are computed be included into the output?
- se
logical; should standard errors of the percentages be included?
- ci
logical; should confidence intervals of the percentages be included?
- ci.level
numeric; nominal coverage of confidence intervals
- total.name
character; name given for the total sum of counts
- perc.label
character; label given for the percentages if the table has more than one dimensions, e.g. if
se
orci
is TRUE.- ...
for
percent.mresp
: one or several 1-0 vectors or matrices otherwise, further arguments, currently ignored.
Examples
x <- rnorm(100)
y <- rnorm(100)
z <- rnorm(100)
f <- sample(1:3,100,replace=TRUE)
f <- factor(f,labels=c("a","b","c"))
percent(x>0)
#> Percentage N
#> 55 100
percent(f)
#> a b c N
#> 28 32 40 100
genTable(
cbind(percent(x>0),
percent(y>0),
percent(z>0)) ~ f
)
#> , , f = a
#>
#>
#> percent(x > 0) percent(y > 0) percent(z > 0)
#> Percentage 53.57143 46.42857 46.42857
#> N 28.00000 28.00000 28.00000
#>
#> , , f = b
#>
#>
#> percent(x > 0) percent(y > 0) percent(z > 0)
#> Percentage 53.125 46.875 46.875
#> N 32.000 32.000 32.000
#>
#> , , f = c
#>
#>
#> percent(x > 0) percent(y > 0) percent(z > 0)
#> Percentage 57.5 47.5 40
#> N 40.0 40.0 40
#>
gt <- genTable(
cbind("x > 0" = percent(x>0,ci=TRUE),
"y > 0" = percent(y>0,ci=TRUE),
"z > 0" = percent(z>0,ci=TRUE)) ~ f
)
ftable(gt,row.vars=3:2,col.vars=1)
#> Percentage lower upper
#> f
#> a x > 0 53.57143 33.86991 72.48914
#> y > 0 46.42857 27.51086 66.13009
#> z > 0 46.42857 27.51086 66.13009
#> b x > 0 53.12500 34.74368 70.90602
#> y > 0 46.87500 29.09398 65.25632
#> z > 0 46.87500 29.09398 65.25632
#> c x > 0 57.50000 40.89006 72.95710
#> y > 0 47.50000 31.51197 63.87199
#> z > 0 40.00000 24.86500 56.67329
ex.data <- expand.grid(mean=c(0,25,50),sd=c(1,10,100))[rep(1:9,rep(250,9)),]
ex.data <- within(ex.data,x <- rnorm(n=nrow(ex.data),mean=ex.data$mean,sd=ex.data$sd))
ex.data <- within(ex.data,x.grp <- cases( x < 0,
x >= 0 & x < 50,
x >= 50 & x < 100,
x >= 100
))
genTable(percent(x.grp)~mean+sd,data=ex.data)
#> , , sd = 1
#>
#> mean
#> 0 25 50
#> x < 0 52.4 0 0.0
#> x >= 0 & x < 50 47.6 100 52.8
#> x >= 50 & x < 100 0.0 0 47.2
#> x >= 100 0.0 0 0.0
#> N 250.0 250 250.0
#>
#> , , sd = 10
#>
#> mean
#> 0 25 50
#> x < 0 44.8 0.0 0.0
#> x >= 0 & x < 50 55.2 98.8 51.6
#> x >= 50 & x < 100 0.0 1.2 48.4
#> x >= 100 0.0 0.0 0.0
#> N 250.0 250.0 250.0
#>
#> , , sd = 100
#>
#> mean
#> 0 25 50
#> x < 0 49.6 44.0 31.6
#> x >= 0 & x < 50 18.4 22.0 18.0
#> x >= 50 & x < 100 13.6 15.2 18.8
#> x >= 100 18.4 18.8 31.6
#> N 250.0 250.0 250.0
#>
Aggregate(percent(Admit,weight=Freq)~Gender+Dept,data=UCBAdmissions)
#> Gender Dept Admitted Rejected N
#> 1 Male A 62.060606 37.93939 825
#> 2 Female A 82.407407 17.59259 108
#> 3 Male B 63.035714 36.96429 560
#> 4 Female B 68.000000 32.00000 25
#> 5 Male C 36.923077 63.07692 325
#> 6 Female C 34.064081 65.93592 593
#> 7 Male D 33.093525 66.90647 417
#> 8 Female D 34.933333 65.06667 375
#> 9 Male E 27.748691 72.25131 191
#> 10 Female E 23.918575 76.08142 393
#> 11 Male F 5.898123 94.10188 373
#> 12 Female F 7.038123 92.96188 341