Revision 4f2efb4ed8831a90968ef063d2403d675c84dae3 authored by Matthias Templ on 26 November 2013, 12:55:44 UTC, committed by cran-robot on 26 November 2013, 12:55:44 UTC
1 parent 2ad963b
missPatterns.R
missPatterns <- function(x){
# identification of the missing pattern structure
# Matthias Templ, Oct 10, 2011
if(is.null(dim(x))) stop("the data set has to be consist of at least two variables")
w <- is.na(x)
tmp <- ifelse(is.na(x), 1, 0) # 'ifelse' does not omit 'dim' attribute
tmpC <- apply(tmp, 1, paste, collapse=":")
tab <- table(tmpC)
tabcomb <- sapply(names(tab),
function(x) as.integer(unlist(strsplit(x, ":", fixed=TRUE))),
USE.NAMES=FALSE)
tabcomb <- if(is.null(dim(tabcomb))) as.matrix(tabcomb) else t(tabcomb)
tabcomb <- ifelse(tabcomb==0,TRUE,FALSE)
cn <- names(tab)
groups <- sapply(cn, function(y){
(which(tmpC %in% y))
})
## Karels beiden MUSS-Variablen ;-):
csum <- lapply(groups, length)
amountComb <- cbind(data.frame(tabcomb), csum=as.numeric(csum))
rsum <- apply(w, 1, sum)
## TODO: N variable dazu, + 2. zeilenweise, spaltenweise
list(groups=groups, cn=cn, tabcomb=tabcomb, tabcombPlus=amountComb, rsum=rsum)
}
zeroPatterns <- function(x){
# identification of the zero pattern structure
# Matthias Templ, Oct 10, 2011
if(is.null(dim(x))) stop("the data set has to be consist of at least two variables")
w <- x == 0
tmp <- ifelse(x==0, 1, 0) # 'ifelse' does not omit 'dim' attribute
tmpC <- apply(tmp, 1, paste, collapse=":")
tab <- table(tmpC)
tabcomb <- sapply(names(tab),
function(x) as.integer(unlist(strsplit(x, ":", fixed=TRUE))),
USE.NAMES=FALSE)
tabcomb <- if(is.null(dim(tabcomb))) as.matrix(tabcomb) else t(tabcomb)
tabcomb <- ifelse(tabcomb==0,TRUE,FALSE)
cn <- names(tab)
groups <- sapply(cn, function(y){
(which(tmpC %in% y))
})
## Karels beiden MUSS-Variablen ;-):
csum <- lapply(groups, length)
amountComb <- cbind(data.frame(tabcomb), csum=as.numeric(csum))
rsum <- apply(w, 1, sum)
## TODO: N variable dazu, + 2. zeilenweise, spaltenweise
list(groups=groups, cn=cn, tabcomb=tabcomb, tabcombPlus=amountComb, rsum=rsum)
}
Computing file changes ...