1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| dropLevels.f <- function(df, which=NULL)
{
## Purpose: Supprimer les 'levels' non utilisés des facteurs d'une
## data.frame.
## ----------------------------------------------------------------------
## Arguments: df : une data.frame
## which : indice des colonnes à inclure (toutes par défaut).
## ----------------------------------------------------------------------
## Author: pitipoisson, Date: 10 août 2010, 13:29
if (class(df) != "data.frame")
{
stop("'df' doit être une data.frame")
}else{
if (is.null(which))
{
x <- as.data.frame(sapply(df, function(x)
{
return(x[ ,drop=TRUE])
}, simplify=FALSE),
stringsAsFactors=FALSE)
}else{ # Cas où seulement certaines colonnes sont traitées.
x <- df
x[ , which] <- as.data.frame(sapply(df[ , which, drop=FALSE],
function(x)
{
return(x[ ,drop=TRUE])
}, simplify=FALSE),
stringsAsFactors=FALSE)
}
return(x)
}
} |
Partager