Nothing
wcAggregateCases <- function(x, weights=NULL, ...){
UseMethod("wcAggregateCases")
}
wcAggregateCasesInternal <- function(x, weights=NULL){
x <- as.data.frame(x)
lx <- nrow(x)
if(is.null(weights)){
weights <- rep(1, lx)
}
for(i in 1:ncol(x)){
x[, i] <- factor(x[ ,i])
levels(x[, i]) <- as.character(1:nlevels(x[, i]))
}
ids <- apply(x, 1, paste, collapse="@@@WC_SEP@@")
FuncEnv <- environment()
mcorr <- rep(NA, lx)
myfunction <- function(x){
FuncEnv$mcorr[x] <- x[1]
return(c(x[1], sum(weights[x])))
}
xx <- aggregate(1:lx, list(id=ids), myfunction)$x
mcorr2 <- match(mcorr, xx[ ,1])
ret <- list(aggIndex=xx[, 1], aggWeights=xx[, 2], disaggIndex=mcorr2, disaggWeights=weights)
class(ret) <- c("wcAggregateCases", class(ret))
return(ret)
}
wcAggregateCases.default <- function(x, weights=NULL, ...){
xx <- wcAggregateCasesInternal(x, weights=weights)
return(xx)
}
wcAggregateCases.data.frame <- function(x, weights=NULL, ...){
xx <- wcAggregateCasesInternal(x, weights=weights)
return(xx)
}
wcAggregateCases.matrix <- function(x, weights=NULL, ...){
xx <- wcAggregateCasesInternal(x, weights=weights)
return(xx)
}
wcAggregateCases.stslist <- function(x, weights=NULL, weighted=TRUE, ...){
if(is.null(weights) && weighted) {
weights <- attr(x, "weights")
}
xx <- wcAggregateCasesInternal(x, weights=weights)
return(xx)
}
print.wcAggregateCases <- function(x, ...){
cat("Number of disaggregated cases: ", length(x$disaggWeights), "\n")
cat("Number of aggregated cases: ", length(x$aggWeights), "\n")
cat("Average aggregated cases: ", format(length(x$disaggWeights)/length(x$aggWeights)), "\n")
cat("Average (weighted) aggregation: ", mean(x$aggWeights), "\n")
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.