Table of Percentages with Percentage Base¶
Description¶
percent
returns a table of percentages along with the percentage base. It will be
useful in conjunction with Aggregate
or genTable
.
Usage¶
percent(x,...)
## S4 method for signature 'default'
percent(x,weights=NULL,total=!(se || ci),
se=FALSE,ci=FALSE,ci.level=.95,
total.name="N",perc.label="Percentage",...)
## S4 method for signature '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.
Value¶
A table of percentages.
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
47 100
percent(f)
a b c N
35 21 44 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 51.42857 45.71429 48.57143
N 35.00000 35.00000 35.00000
, , f = b
percent(x > 0) percent(y > 0) percent(z > 0)
Percentage 38.09524 23.80952 52.38095
N 21.00000 21.00000 21.00000
, , f = c
percent(x > 0) percent(y > 0) percent(z > 0)
Percentage 47.72727 54.54545 43.18182
N 44.00000 44.00000 44.00000
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 51.428571 33.989142 68.617149
y > 0 45.714286 28.827144 63.354198
z > 0 48.571429 31.382851 66.010858
b x > 0 38.095238 18.107163 61.564561
y > 0 23.809524 8.217588 47.165983
z > 0 52.380952 29.780684 74.286937
c x > 0 47.727273 32.461422 63.310248
y > 0 54.545455 38.847212 69.609289
z > 0 43.181818 28.349373 58.966278
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 55.2 0 0.0
x >= 0 & x < 50 44.8 100 45.6
x >= 50 & x < 100 0.0 0 54.4
x >= 100 0.0 0 0.0
N 250.0 250 250.0
, , sd = 10
mean
0 25 50
x < 0 52 0.8 0.0
x >= 0 & x < 50 48 98.4 50.8
x >= 50 & x < 100 0 0.8 49.2
x >= 100 0 0.0 0.0
N 250 250.0 250.0
, , sd = 100
mean
0 25 50
x < 0 47.6 42.4 28.4
x >= 0 & x < 50 18.4 18.4 19.6
x >= 50 & x < 100 16.8 12.4 20.0
x >= 100 17.2 26.8 32.0
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