aVirtualTwins/R/incidences.R

37 lines
1.2 KiB
R

# INCIDENCE TABLES FUNCTION /!\ important
setGeneric("VT.incidences",
function(vt.difft, select, rr.snd){ standardGeneric("VT.incidences") }
)
setMethod(
f = "VT.incidences",
signature = c(vt.difft = "VT.difft", select = "character", rr.snd = "logical"),
function(vt.difft, select, rr.snd = F){
vector.selected <- with(vt.difft$vt.object$data, ifelse(eval(parse(text = select)), 1, 0))
return(VT.incidences(vt.difft, select = vector.selected, rr.snd))
}
)
setMethod(
f = "VT.incidences",
signature = c(vt.difft = "VT.difft", select = "vector", rr.snd = "logical"),
function(vt.difft, select, rr.snd = F){
selected <- with(vt.difft$vt.object$data, vt.difft$vt.object$data[as.logical(select), c(1,2)])
not.selected <- with(vt.difft$vt.object$data, vt.difft$vt.object$data[!as.logical(select), c(1,2)])
list.tmp <- list(vt.getIncidence(selected), vt.getIncidence(not.selected))
names(list.tmp) <- c("table.selected", "table.not.selected")
if(isTRUE(rr.snd)){
list.tmp$table.selected$rr.snd <- vt.rr.snd(vt.difft, select)
list.tmp$table.not.selected$rr.snd <- vt.rr.snd(vt.difft, (1-select))
}
return(list.tmp)
}
)