##################################################################################### nbNApct <- function(v) { # VERSION AVEC LISTE EN RETOUR ! ##################################################################################### # calcule du nombre de données NA dans un vecteur et calcul du pourcentage correspondant # (on ne teste pas si le vecteur est vide) nbna <- sum(is.na(v)) pct <- 100*nbna/length(v) return(list(nbNA=nbna,pctNA=pct)) } # fin de fonction nbNApct ##################################################################################### cat(" pour un vecteur quelconque : \n") print( nbNApct( c(1,3,8,NA,2,NA,5) ) ) cat(" pour age : \n") library(gdata) age <- read.xls("essai.xls")$AGE print( nbNApct( age )) cat(" pour toutes les colonnes\n") data <- read.xls("essai.xls") print( apply(X=data,F=nbNApct,M=2) ) cat(" pour toutes les colonnes avec sapply :\n") data <- read.xls("essai.xls") print( sapply(X=data,F=nbNApct) ) # cela ne marche pas très bien avec une matrice md <- matrix(round(100*runif(15)), nrow=5,ncol=3) md[4,2] <- md[1,2] <- NA print(md) print( sapply(X=md,F=nbNApct) )