Introduction
Il existe un large éventail de package R consacré à la gestion et la mise en forme de table et de tris croisés (GT
, flextable
, …). S’ils sont souvent de grandes qualités, leur coût d’entrée peut être un peu élevé pour les utilisateurs.rices occasionnelles de R.
Pour répondre aux besoins de ces derniers, vous trouverez ici une fonction qui permet de facilement compiler des tris à plats ou bivariées, pour explorer automatiquement un grand nombre de variables, utiliser une pondération et les exporter dans un document Excel.
Pour une introduction aux tables et à la pondération, voir la fiche
Données d’exemples
Pour illustrer la mise en oeuvre de la fonction, on utilise les données d’exemples hdv2003 du packages questionr
. Ces données possèdent à la fois des variables sur des carastéristiques socio-démographiques, des pratiques et des goûts, et propose une variable de pondération : poids.
id | age | sexe | nivetud | poids | occup |
---|---|---|---|---|---|
1 | 28 | Femme | Enseignement superieur y compris technique superieur | 2634.398 | Exerce une profession |
2 | 23 | Femme | NA | 9738.396 | Etudiant, eleve |
3 | 59 | Homme | Derniere annee d'etudes primaires | 3994.102 | Exerce une profession |
4 | 34 | Homme | Enseignement superieur y compris technique superieur | 5731.662 | Exerce une profession |
5 | 71 | Femme | Derniere annee d'etudes primaires | 4329.094 | Retraite |
6 | 35 | Femme | Enseignement technique ou professionnel court | 8674.699 | Exerce une profession |
Objectifs :
- Obtenir une table automatique avec les tris à plat d’un grand nombre de variables
- Croiser ces variables avec une variable choisie, par exemple le sexe ou la qualification et obtenir :
- Les effectifs
- Les pourcentages lignes
- Les poucentages colonnes
- Ajout d’un test du chi²
- Utiliser des pondérations
- Garder ou non les valeurs manquantes
- Exporter le tableau obtenu (Par exemple : image ci-dessous)
Mise en oeuvre
Fonctionnement
On utilise la fonction table_auto()
qui ne fait partie d’aucun package, il faut donc la charger dans un premier temps dans R. Une fois la fonction chargée, il suffira de la lancer en renseignant les variables, et les options voulues (présence de valeurs manquantes, pondérations, exportation)
Paramètre de la fonction
Paramètre | Argument |
---|---|
donnees | Une base de données |
vars | Un vecteur avec les différentes variables en lignes |
var_crois |
|
table_type |
|
ponder | Une variable de pondération dans donnee |
val.manq | “oui” ou “non”, garder ou non les valeurs manquantes |
arrondi | Nombre de chiffre après la virgule |
sautdeligne | “oui” ou “non”, insérer une ligne vide entre chaque variable |
export_XLS | “oui” ou “non”, si oui : création d’un fichier excel. |
Import de la fonction table_auto()
Pour l’instant la fonction ne se trouve pas dans un package, il faut donc la charger dans l’environnement global de R depuis GitHub en utilisant le code suivant.
Chargement de la fonction depuis Github
source("https://raw.githubusercontent.com/arnomuller/Fonction_R/main/table_auto/fonction_table_auto.R")
Le code de la fonction est disponible ici, si vous souhaitez lui apparter des modifications pour l’adapter à vos besoins.
Choix des variables
On définit les variables à croiser :
Choix des variables
vars <- c("relig","trav.imp","trav.satisf","hard.rock",
"lecture.bd","peche.chasse","cuisine",
"bricol","cinema","sport")
On peut également définir ici la variable de poids et celle à croiser, ou le faire directement dans la fonction.
# On croise avec la variable sexe
var_crois <- "sexe"
# Si pas de croisement écrire NULL
var_crois <- NULL
# Variable de pondération
ponder <- "poids"
# Si pas de pondération :
ponder <- NULL
Création du tableau empilé
En lançant le code suivant, on crée le data.frame tabdesc.
Activation de la fonction
table_auto(hdv2003, # Base de données
vars, # Un vecteur avec les noms des variables
var_crois = "sexe", # Variable à croiser, si NULL : tri à plat
table_type = "eff", # Type de table : "eff", "pct_lign", "pct_col"
ponder = NULL, # Variable de ponder. , si NULL: pas de poids
val.manq = "non", # Si "oui" avec valeurs manquantes
arrondi = 4, # Nb de chiffres après la virgule
sautdeligne = "oui", # Sauter des lignes entre les variables
export_XLS = "non") # Si "oui" créer un excel : tableau_empilee
Var | Levels | ENSEMBLE | Homme | Femme | pvalue | ddl | danger |
---|---|---|---|---|---|---|---|
ENSEMBLE | 2000 | 899 | 1101 | NA | NA | NA | |
NA | NA | NA | NA | NA | NA | NA | NA |
relig | Pratiquant regulier | 266 | 86 | 180 | 0,0000 | 5 | 0 |
relig | Pratiquant occasionnel | 442 | 170 | 272 | 0,0000 | 5 | 0 |
relig | Appartenance sans pratique | 760 | 365 | 395 | 0,0000 | 5 | 0 |
relig | Ni croyance ni appartenance | 399 | 210 | 189 | 0,0000 | 5 | 0 |
relig | Rejet | 93 | 52 | 41 | 0,0000 | 5 | 0 |
relig | NSP ou NVPR | 40 | 16 | 24 | 0,0000 | 5 | 0 |
NA | NA | NA | NA | NA | NA | NA | NA |
trav.imp | Le plus important | 29 | 13 | 16 | 0.0001 | 3 | 0 |