Import de données issues de Modalisa

L'extension rgrs propose des fonctions permettant d'importer et de faciliter le traitement de données issues du logiciel Modalisa.

La première étape est de faire un export ASCII de l'enquête dans Modalisa. On peut choisir d'exporter tout ou partie des individus et des questions, et on peut effectuer un export avec les codes ou les libellés des variables et des modalités. Il est fortement conseillé a priori d'utiliser plutôt les libellés.

Une fois qu'on a le fichier .TXT issu de l'export, on peut utiliser la fonction mls.import du paquet rgrs de la manière suivante :

d <- mls.import("donnees_exportees.TXT")

Ceci a pour effet de lire le contenu du fichier export est de le stocker dans un nouveau data frame nommé d. Si le fichier export n'est pas dans le même répertoire que votre fichier R, vous devez évidemment indiquer le chemin complet à la place du nom du fichier.

L'option modif.names de la fonction mls.import, activée par défaut, convertit tous les noms de variables en minuscules et remplace les espaces par des tirets bas (_). On peut la désactiver :

d <- mls.import("donnees_exportees.TXT", modif.names=FALSE)

Traitement des questions à réponses multiples ou ordonnées

Un des problèmes lorsqu'on transfère des données depuis Modalisa vers R concerne les questions à réponses multiples et celles à réponses ordonnées. Celles-ci sont exportées en concaténant les différentes modalités choisies et en les séparant par une barre oblique /. Quand il s'agit de réponses ordonnées, la modalité placée en première position et concaténée en tête de la liste.

Les fonctions suivantes permettent de transformer ces variables pour les exploiter sous R.

Eclater des réponses multiples

La première fonction mls.eclate.multi éclate une variable en à réponses multiples en autant de variables qu'il y a de modalités. Chaque nouvelle variable créée a la modalité O si la modalité correspondant à cette variable a été choisie, et la modalité N sinon.

Le paramètre vname est utilisé pour préfixer les noms des nouvelles variables créées, et le paramètre mnames peut être utilisé pour indiquer les noms manuellement.

Exemple d'utilisation de la fonction :

tmp <- mls.eclate.multi(d$variable.multiple, vname="diff")
d <- cbind(d,tmp)

Eclater des réponses ordonnées

Pour les réponses ordonnées on dispose de la fonction mls.eclate.ordo, dont le fonctionnement est presque le même que celui de la fonction mls.eclate.multi. On a cependant un paramètre supplémentaire, nb, qui indique jusqu'à quel rang de classement on souhaite effectuer le traitement.

Par exemple, si nb vaut 3, alors les variables générées seront positionnées à O si la modalité correspondante a été citée dans les trois premières réponses données, et à N sinon.

Faire une table de réponses multiples

On peut aussi vouloir faire un tri à plat de la répartition des réponses à une question à réponses multiples, comme le propose par défaut Modalisa. La particularité de ce type de tableau est d'avoir un effectif correspondant au nombre de réponses, et pas au nombre d'individus, ce qui a tendance à rendre son interprétation et surtout son utilisation conjointement à d'autres variables un peu délicates.

La fonction pour obtenir un tel tri à plat se nomme mls.table.multi et prend simplement le nom de la variable en argument :

mls.table.multi(df$variable)

Remarque

Il faut faire attention que les modalités des réponses multiples et ordonnées ne contiennent pas elles-même une barre oblique (par exemple si une modalité a un libellé du type truc et/ou machin).

Si c'est le cas il faut identifier les barres obliques en question et les remplacer par un autre caractère, par exemple à l'aide de la commande suivante :

levels(var) <- gsub("et/ou","et-ou",levels(var))

Export de données vers Modalisa

Il peut arriver que suite à un traitement effectué dans R, par exemple le calcul d'une nouvelle variable, on souhaite réimporter ces données dans Modalisa. La marche à suivre est alors la suivante.

Remarque préalable

Pour que l'import fonctionne correctement, on suppose ici que les enregistrements sont dans le même ordre que ceux de l'enquête originale. Pour en être certain on peut, lors de l'export depuis Modalisa, choisir d'exporter les numéros de ligne et vérifier que les données sont bien triées avec cette colonne avant l'export.

Export des données depuis R

On doit placer toutes les variables à exporter dans un même data frame qu'on nommera df. Il faut ensuite faire un export ASCII de ce data frame dans un fichier avec extension .txt grâce à la fonction mls.export :

mls.export(df, "export.txt")

Import dans Modalisa

Une fois qu'on a le fichier exporté au format txt, il faut suivre les étapes suivantes dans Modalisa :

  1. Dans l'enquête, sélectionner Questions, puis Ajouter.
  2. Créer une nouvelle variable correspondant à la première colonne du fichier exporté depuis R. Lui donner un nom, et sélectionner son type. Dans le cas d'une variable numérique, bien renseigner les bornes supérieures, inférieures et le nombre de décimales. Les valeurs importées n'étant pas entre les deux bornes seront considérées comme des non-réponses.
  3. Recommencer les étapes 1 et 2 pour chaque colonne de l'export depuis R.
  4. Choisir Fichier puis Import ASCII. Sélectionner Importer des questionnaires dans l'enquête courante, puis /Les données importées remplaceront celles existant déjà pour les questions de destination choisies/. Sélectionner le fichier texte correspondant à l'export depuis R.
  5. Dans le tableau qui s'affiche, il faut sélectionner pour chaque colonne du fichier d'export le nom de la variable nouvellement créée correspondante. Son nom doit s'insérer dans la colonne Question de destination. Lorsque la correspondance entre colonnes de l'export et question de destination est correcte, choisis Suivant.
  6. Dans le dialogue qui s'affiche, cocher la case exclure la première ligne. Vérifier les options et cliquer sur Continuer.

Normalement ça devrait être terminé, et les données importées devraient se trouver dans les variables de destination créées exprès pour.

L'intérêt de cette méthode, contrairement à celle qui consiste à créer une nouvelle enquête à partir de l'export depuis R et à fusionner avec l'enquête existante, c'est qu'ici les recodages sont conservés.