Skip to contents

Pourquoi ?

Cette vignette a pour but d’expliciter le nettoyage de données en utilisant impactR. A noter que les fonctions de nettoyage sont liées aux fonctions de suivi de collecte de données. Ainsi, si vous n’utilisez pas les fonctions de suivi de collecte de données, il vous faudra faire correspondre votre journal de nettoyage aux fonctions présentées ci-après.

# Si vous n'avez pas encore installé le package
# devtools::install_github("impactR)
library(impactR)

Ci-dessous, on peut importer des données collectées.

# Load dataset in environment
data(data)

# Show the first lines and types of airports' tibble
data <- data |> tibble::as_tibble()

On importe la feuille ‘survey’ :

data(survey)
survey <- survey |> tibble::as_tibble()

La première chose à faire avec l’objet ‘survey’, car il sera utilisé ailleurs : il faut séparer en deux la colonne ‘type’.

# Mis à part l'argument 'col_to_split' (la colonne à séparer), les autres paramètres sont les paramètres par défaut
survey <- survey |>  
  split_survey(
    col_to_split = "type",
    into = c("type", "list_name"),
    sep = " ",
    fill = "right")

On importe les choix :

data(choices)
choices <- choices |> tibble::as_tibble()

On importe le journal de nettoyage :

data(cleaning_log)
cleaning_log <- cleaning_log |> tibble::as_tibble()

Nettoyer les données

C’est aussi simple que deux étapes.

1- Vérifier si le journal de nettoyage est minimalement bien rempli :

check_cleaning_log(cleaning_log, data, uuid, "autre_")
## Warning in check_cleaning_log(cleaning_log, data, uuid, "autre_"): The following id_col and question_name have remaining bits from the template such as 'Fill in' in column 'feedback', please check:
##  x7: i_consensus
##  x8: i_consensus
##  x1: survey_duration
##  x2: survey_duration
##  x3: survey_duration
##  x4: survey_duration
##  x5: survey_duration
##  x6: survey_duration
##  x7: survey_duration
##  x8: survey_duration
##  x2: c_chef_menage_age
##  x2: i_enquete_age
##  x1: c_n_chef_menage_age
##  x2: c_n_chef_menage_age
##  x1: c_chef_menage_age
## Warning in check_cleaning_log(cleaning_log, data, uuid, "autre_"): The following id_col and question_name have remaining bits from the template such as 'Fill in' in column 'new_value', please check:
##  x7: autre_r_besoin_assistance
##  x2: i_enquete_age
##  x2: c_n_chef_menage_age
##  x1: c_chef_menage_age
## NULL
# Si NULL, alors c'est ok

2 - Utiliser la fonction clean_all() :

cleaned_data <- clean_all(data, cleaning_log, survey, choices, uuid, "autre_")
## Warning in check_cleaning_log(log, .tbl, {: The following id_col and question_name have remaining bits from the template such as 'Fill in' in column 'feedback', please check:
##  x7: i_consensus
##  x8: i_consensus
##  x1: survey_duration
##  x2: survey_duration
##  x3: survey_duration
##  x4: survey_duration
##  x5: survey_duration
##  x6: survey_duration
##  x7: survey_duration
##  x8: survey_duration
##  x2: c_chef_menage_age
##  x2: i_enquete_age
##  x1: c_n_chef_menage_age
##  x2: c_n_chef_menage_age
##  x1: c_chef_menage_age
## Warning in check_cleaning_log(log, .tbl, {: The following id_col and question_name have remaining bits from the template such as 'Fill in' in column 'new_value', please check:
##  x7: autre_r_besoin_assistance
##  x2: i_enquete_age
##  x2: c_n_chef_menage_age
##  x1: c_chef_menage_age
## Warning: There is no corresponding list_name in choices for col: 'r_besoin_assistance'.
## An empty vector or an empty tibble is returned.
## Warning in Sys.timezone(): unable to identify current timezone 'H':
## please set environment variable 'TZ'

L’objet cleaned_data est le jeu de données nettoyé avec :

  • les entretiens à supprimer supprimés
  • les entretiens dupliqués supprimés
  • les valeurs à modifier modifiées
  • les autres enfants et parents à modifier modifiées
  • les colonnes des choix multiples de 0 et 1 modifiées pour tenir compte des recodages/modifications.