df.add.total.category <- function(dat, var.list, new.level.label = "Total")
{
## Purpose: Add a "Total" level to each specified categorical variable in the data frame.
## Arguments:
## dat: a data frame with several categorical variables for making tables.
## var.list: a list of variable names in "dat".
## new.level.label: the name for the new "total" level for the specified variable.
## Return:
## Author: Feiming Chen, Date: 21 Jun 2017, 13:02
## ________________________________________________
if ( missing(var.list) ) {
var.list <- names(dat)
}
d0 <- dat # to make new label across all variables
lapply(var.list, function( v ) {
d <- dat
d[[v]] <- new.level.label
d0[[v]] <<- new.level.label
d
}) -> dd
do.call(rbind, c(list(dat), dd, list(d0)))
}
if (F) { # Unit Test
dat <- data.frame(A=gl(3,3), B=gl(3, 1, 9), C=11:19)
df.add.total.category(dat, var.list=c("A", "B"))
}
Wednesday, June 21, 2017
Add a "Total" level to each specified categorical variable in the data frame
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment