bystats
returns a matrix with the sample size, number missing
y, and
fun(non-missing y)
, with the cross-classifications designated
by rows. Uses Harrell's modification of the
interaction
function to produce cross-classifications. The default
fun is
mean
, and if
y is binary, the mean is labeled as
Fraction
. There is a
print method as well as a
latex
method for objects created by
bystats.
bystats2
handles the special case in which there are 2
classifcation variables, and places the first one in rows and the
second in columns. The
print method for
bystats2 uses
the S-PLUS
print.char.matrix function to organize statistics
for cells into boxes.
bystats(y, ..., fun, nmiss, subset) ## S3 method for class 'bystats': print(x, ...) ## S3 method for class 'bystats': latex(object, title, caption, rowlabel, ...) bystats2(y, v, h, fun, nmiss, subset) ## S3 method for class 'bystats2': print(x, abbreviate.dimnames=FALSE, prefix.width=max(nchar(dimnames(x)[[1]])), ...) ## S3 method for class 'bystats2': latex(object, title, caption, rowlabel, ...)
y is a data frame it is converted to a matrix.
If
y is a data frame or matrix, computations are done on subsets of
the rows of
y, and you should specify
fun so as to be able to operate
on the matrix. For matrix
y, any column with a missing value causes
the entire row to be considered missing, and the row is not passed to
fun.
bystats, one or more classifcation variables separated by commas.
For
print.bystats, options passed to
print.default such as
digits.
For
latex.bystats, and
latex.bystats2,
options passed to
latex.default such as
digits.
If you pass
cdec to
latex.default, keep in mind that the first one or
two positions (depending on
nmiss) should have zeros since these
correspond with frequency counts.
bystats2. Will be converted to
factor.
bystats2. Will be converted to
factor.
y for a given subset.
You must specify
fun= in front of the function name or definition.
fun may return a single number or a vector or matrix of any length.
Matrix results are rolled out into a vector, with names preserved.
When
y is a matrix, a common
fun is
function(y) apply(y, 2, ff)
where
ff is the name of a function which operates on one column of
y.
nmiss=TRUE
or if there is at least one missing value.
TRUE to abbreviate
dimnames in output
title to pass to
latex.default. Default is the first word of
the character string version of the first calling argument.
latex.default. Default is the
heading
attribute from the object produced by
bystats.
rowlabel to pass to
latex.default. Default is the
byvarnames
attribute from the object produced by
bystats. For
bystats2 the
default is
"".
bystats or
bystats2
bystats or
bystats2
bystats, a matrix with row names equal to the classification labels and column
names
N, Missing, funlab, where
funlab is determined from
fun.
A row is added to the end with the summary statistics computed
on all observations combined. The class of this matrix is
bystats.
For
bystats, returns a 3-dimensional array with the last dimension
corresponding to statistics being computed. The class of the array is
bystats2
.
Frank Harrell
Department of Biostatistics
Vanderbilt University
f.harrell@vanderbilt.edu
## Not run:
bystats(sex==2, county, city)
bystats(death, race)
bystats(death, cut2(age,g=5), race)
bystats(cholesterol, cut2(age,g=4), sex, fun=median)
bystats(cholesterol, sex, fun=quantile)
bystats(cholesterol, sex, fun=function(x)c(Mean=mean(x),Median=median(x)))
latex(bystats(death,race,nmiss=FALSE,subset=sex=="female"), digits=2)
f <- function(y) c(Hazard=sum(y[,2])/sum(y[,1]))
# f() gets the hazard estimate for right-censored data from exponential dist.
bystats(cbind(d.time, death), race, sex, fun=f)
bystats(cbind(pressure, cholesterol), age.decile,
fun=function(y) c(Median.pressure =median(y[,1]),
Median.cholesterol=median(y[,2])))
y <- cbind(pressure, cholesterol)
bystats(y, age.decile,
fun=function(y) apply(y, 2, median)) # same result as last one
bystats(y, age.decile, fun=function(y) apply(y, 2, quantile, c(.25,.75)))
# The last one computes separately the 0.25 and 0.75 quantiles of 2 vars.
latex(bystats2(death, race, sex, fun=table))
## End(Not run)