-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME.Rmd
211 lines (136 loc) · 9.12 KB
/
README.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
---
output: github_document
---
<!-- README.md is generated from README.Rmd. Please edit that file -->
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```
# SuSoTidyR
<!-- badges: start -->
<!-- badges: end -->
**(ENG) SuSoTidyR** is an R package designed to facilitate the import, cleaning, and transformation of data exported from Survey Solutions. This package helps structure the data in a **tidy** format, making it easier to analyze and work with. It also includes functions to handle unwanted variables generated by configuration errors, such as missing response limits in list-type questions.
**(FR) SuSoTidyR** est un package R conçu pour faciliter l'importation, le nettoyage et la transformation des données exportées depuis Survey Solutions. Ce package aide à structurer les données dans un format **tidy**, rendant leur analyse et manipulation plus simples. Il inclut également des fonctions pour gérer les variables inutiles générées par des erreurs de configuration, comme l'absence de limite de réponses dans les questions de type liste.
## Main Features (ENG)
- **import_metadata**: Imports metadata and variable labels from Survey Solutions `.do` files.
- **import_results**: Imports main survey results along with associated files, such as rosters, assignments, and interviews.
- **clean_lists**: Removes unwanted columns containing only specific missing values (e.g., `-999999999`, `##N/A##`).
- **replace_na_values**: Replaces specific missing values with `NA` to standardize missing data.
- **values_to_labels**: Replaces coded values with their corresponding labels for easier interpretation.
## Fonctionnalités principales (FR)
- **import_metadata** : Importe les métadonnées et les labels des variables depuis les fichiers `.do` de Survey Solutions.
- **import_results** : Importe les résultats d’enquête principaux ainsi que les fichiers associés, comme les rosters, les assignments et les interviews.
- **clean_lists** : Supprime les colonnes inutiles contenant uniquement des valeurs manquantes spécifiques (e.g., `-999999999`, `##N/A##`).
- **replace_na_values** : Remplace les valeurs spécifiques de données manquantes par des `NA` pour uniformiser les données.
- **values_to_labels** : Remplace les valeurs codées par leurs labels pour les rendre plus interprétables.
## Installation
Install the package directly from GitHub using the `remotes` package:
Installez le package directement depuis GitHub avec le package `remotes` :
```{r, results = "hide"}
# If remotes is not installed / Si remotes n'est pas installé
install.packages("remotes")
# Install SuSoTidyR from GitHub / Installer SuSoTidyR depuis GitHub
remotes::install_github("noebarthelemy/SuSoTidyR")
```
## Usage / Utilisation
Here is an example workflow with **SuSoTidyR** to import, clean, and organize data from a Survey Solutions survey.
Voici un exemple de flux de travail avec **SuSoTidyR** pour importer, nettoyer et organiser les données d'une enquête Survey Solutions.
### 1. Import Metadata / Importer les Métadonnées
Use `import_metadata` to load Survey Solutions metadata from a folder containing `.do` files.
Utilisez `import_metadata` pour charger les métadonnées de *Survey Solutions* depuis un dossier contenant des fichiers `.do`.\
```{r, results = "hide"}
library(SuSoTidyR)
library(tidyverse)
library(here)
# Path to exported metadata folder / Chemin vers le dossier de métadonnées exportées
metadata <- import_metadata(here("example_data"))
head(metadata)
```
### 2. Import Survey Results / Importer les Résultats de l'Enquête
Use `import_results` to import main survey results along with associated files, by specifying the questionnaire variable name and files to import.
Utilisez `import_results` pour importer les résultats de l'enquête, y compris les rosters et les autres fichiers associés, en spécifiant le nom de la variable de questionnaire et les fichiers à importer.
```{r}
# Import results with rosters / Importer les résultats avec les rosters
# Import results with rosters etc / Importer les résultats avec les rosters etc
import_results(
Variable_Questionnaire = "ESS_2024",
Importer_Rosters = TRUE,
Importer_AssignmentsValues = TRUE,
Importer_InterviewsValues = TRUE,
dossier_resultats = here("example_data")
)
```
### 3. Clean Unnecessary Columns / Nettoyer les Colonnes Indésirables
When list-type questions are configured without limits in the number of answers, Survey Solutions may generate hundreds of columns containing only missing values. Use `clean_lists` to remove these unnecessary columns from the results and optionally from the metadata.
Lorsque des questions de type liste sont configurées sans limites de nombre de réponses, Survey Solutions peut générer des centaines de colonnes contenant uniquement des valeurs manquantes. Utilisez `clean_lists` pour supprimer ces colonnes inutiles dans les résultats et éventuellement dans la nomenclature.\
```{r}
# Clean unnecessary columns in results / Nettoyer les colonnes indésirables du tableau de résultats
ESS_2024_clean <- ESS_2024 %>%
clean_lists()
# Clean some roster data / Nettoyer les colonnes indésirables du tableau de résultats d'un des rosters :
ESS_2024_Roster_leviers_clean <- ESS_2024_Roster_leviers %>%
clean_lists()
# Clean the metadata based on removed columns / Nettoyer la nomenclature en fonction des colonnes supprimées
# WARNING : USE THE NON CLEANED VERSION OF THE DATASET (ESS_2024 and not ESS_2024_clean) OTHERWISE THIS WILL NOT WORK.
# ATTENTION : UTILISEZ LA VERSION NON NETTOYEE DU JEU DE DONNEES (ESS_2024 ET NON PAS ESS_2024_clean) SINON CELA NE FONCTIONNERA PAS :
nomenclature_clean <- metadata %>%
clean_lists(data = list(ESS_2024, ESS_2024_Roster_AvantApres))
```
### 4. Replace Specific Missing Values / Remplacer les Valeurs Manquantes Spécifiques
Values like `-999999999` or `##N/A##` may indicate missing data. Use `replace_na_values` to standardize these as `NA`.
Certaines valeurs comme `-999999999` ou `##N/A##` peuvent être utilisées pour indiquer des données manquantes. Utilisez `replace_na_values` pour standardiser ces valeurs manquantes en les remplaçant par `NA`.\
```{r}
# Replace specific missing values with NA / Remplacer les valeurs manquantes spécifiques par NA
ESS_2024_NA_clean <- ESS_2024_clean %>%
replace_na_values()
```
### 5. Replace coded values with labels / Remplacer les valeurs codées par leurs labels
To make the data more interpretable, replace coded values in the results table with their associated labels from the metadata.
Pour faciliter l’interprétation, vous pouvez remplacer les valeurs codées dans le tableau de résultats par les labels associés à partir de la nomenclature.
```{r, warning= FALSE}
# Replace coded values with labels / Remplacer les valeurs codées par leurs labels
ESS_2024_labeled <- ESS_2024_NA_clean %>%
values_to_labels(nomenclature_clean, columns = "all")
```
## Full Example / Exemple Complet
Here's a full example workflow with **SuSoTidyR**:
Voici un exemple complet de flux de travail avec **SuSoTidyR** :
```{r, results = "hide"}
library(SuSoTidyR)
library(tidyverse)
library(here)
# Path to exported metadata folder / Chemin vers le dossier de métadonnées exportées
metadata <- import_metadata(here("example_data"))
# Import results with rosters etc / Importer les résultats avec les rosters etc
import_results(
Variable_Questionnaire = "ESS_2024",
Importer_Rosters = TRUE,
Importer_AssignmentsValues = TRUE,
Importer_InterviewsValues = TRUE,
dossier_resultats = here("example_data")
)
# Clean unnecessary columns in results / Nettoyer les colonnes indésirables du tableau de résultats
ESS_2024_clean <- ESS_2024 %>%
clean_lists()
# Clean some roster data / Nettoyer les colonnes indésirables du tableau de résultats d'un des rosters :
ESS_2024_Roster_AvantApres_clean <- ESS_2024_Roster_AvantApres %>%
clean_lists()
# Clean the metadata based on removed columns / Nettoyer la nomenclature en fonction des colonnes supprimées
# WARNING : USE THE NON CLEANED VERSION OF THE DATASET (ESS_2024 and not ESS_2024_clean) OTHERWISE THIS WILL NOT WORK.
# ATTENTION : UTILISEZ LA VERSION NON NETTOYEE DU JEU DE DONNEES (ESS_2024 ET NON PAS ESS_2024_clean) SINON CELA NE FONCTIONNERA PAS :
nomenclature_clean <- metadata %>%
clean_lists(data = list(ESS_2024, ESS_2024_Roster_AvantApres))
# Replace specific missing values with NA / Remplacer les valeurs manquantes spécifiques par NA
ESS_2024_NA_clean <- ESS_2024_clean %>%
replace_na_values()
# Replace coded values with labels / Remplacer les valeurs codées par leurs labels
ESS_2024_labeled <- ESS_2024_NA_clean %>%
values_to_labels(nomenclature_clean, columns = "all")
```
## Contributions
Contributions are welcome! If you have suggestions, ideas for improvement, or if you encounter any issues, feel free to create an issue or submit a pull request on GitHub.
Les contributions sont les bienvenues ! Si vous avez des suggestions, des idées d’amélioration ou si vous rencontrez des problèmes, n’hésitez pas à créer une issue ou à soumettre une pull request sur GitHub.