### (gH) -_- co-occur2.r # exemple d'utilisation : # Rscript --encoding=latin1 --vanilla co-occur2.r coOccurMarges <- function(dataFile,xmlFile) { ## 1. test du nombre de paramètres if (nargs()<2) { cat("\n") cat("Nombre de paramètres incorrect.\n") cat("Vous devez fournir un nom de fichier de données et un fichier XML de configuration.\n\n") cat("Exemple : coOccurMarges(\"elf2Data.txt\",\"elf2Data.xml\")\n\n") cat("Consulter http://forge.info.univ-angers.fr/~gh/Decra/co-occur.php pour le format des données.\n") cat("\n") stop(-1) } # fin si sur argc ## 2. vérification de l'existence des fichiers if (!file.exists(dataFile)) { cat("\n") cat("Fichier de données",dataFile,"non vu.\n") stop(-2) } # fin de si sur dataFile if (!file.exists(xmlFile)) { cat("\n") cat("Fichier de configuration",xmlFile,"non vu.\n") stop(-3) } # fin de si sur dataFile ## 3. remplacement de la lecture du fichier XML de configuration par des affectations directes variable1 <- "SEXE" variable2 <- "EtMarital" nums1 <- 1:2 modas1 <- c("Homme","Femme") nums2 <- 0:1 modas2 <- c("Seul","En couple") ## 4. lecture des données et vérificaton de l'existence des colonnes data <- read.table(dataFile,header=TRUE) lesVars <- names(data) if (!variable1 %in% lesVars) { cat("Il n'y a pas de colonne nommée",variable1,"dans les données.\n") ; stop(-4) } # fin si sur variable1 if (!variable2 %in% lesVars) { cat("Il n'y a pas de colonne nommée",variable2,"dans les données.\n") ; stop(-5) } # fin si sur variable1 ## 5. construction du tri croisé amélioré var1 <- data[,variable1] var2 <- data[,variable2] var1f <- factor(var1,levels=nums1,labels=modas1) var2f <- factor(var2,levels=nums2,labels=modas2) tc <- table(var1f,var2f) pctsv1 <- paste(round(100*prop.table(table(var1f)),1),"%") pctsv2 <- paste(round(100*prop.table(table(var2f)),1),"%") tc <- rbind(tc,pctsv1) tc <- cbind(tc,c(pctsv2," ")) row.names(tc)[1+length(modas1)] <- paste("pct",variable1,collapse=" ") colnames(tc)[ 1+length(modas2)] <- paste("pct",variable2,collapse=" ") print(tc,quote=FALSE) } # fin de fonction coOccurMarges # appel de la fonction coOccurMarges("elf2Data.txt","elf2Data.xml")