Bonjour,
J'ai à ma disposition une base de données sur laquelle j'aurais aimé à partir d'une variable, en créer d'autres.
Les données ayant été saisies automatiquement sous Sphinx, il est assez difficile de les interpréter sous cette forme qui est la suivante.
Variable :
- 1. ex1 ; 2. ex2
- 2. ex2 ; 5. ex5 ; 7. ex7
- NA
- 3. ex3
- ...
Concrètement, pour chaque colonne et donc individu, chaque case ayant été coché lors de la saisie se retrouve dans cette même variable. Chacune étant séparé par un point virgule.
Ainsi, j'aurais aimé pouvoir ajouter une colonne pour chacune des modalités et ce, sous forme binaire (1 si modalité, 0 si pas la modalité).
J'ai donc écrit le code suivant (les données ayant été modifiées pour apporter une certaine clarté et ne sont donc pas systématiquement sous ces mêmes formes) :
Le code fonctionne mais cela fait donc pas mal de lignes de code, tout en sachant que je dois répéter cette opération pour plusieurs variables.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 data$ex1 <- ifelse(regexpr("1. ex1", data$var) == -1, data$ex1 <- 0, data$ex1 <- 1) data$ex2 <- ifelse(regexpr("2. ex2", data$var) == -1, data$ex2 <- 0, data$ex2 <- 1) data$ex3 <- ifelse(regexpr("3. ex3", data$var) == -1, data$ex3 <- 0, data$ex3 <- 1) data$ex4 <- ifelse(regexpr("4. ex4", data$var) == -1, data$ex4 <- 0, data$ex4 <- 1) data$ex5 <- ifelse(regexpr("5. ex5", data$var) == -1, data$ex5 <- 0, data$ex5 <- 1) data$ex6 <- ifelse(regexpr("6. ex6", data$var) == -1, data$ex6 <- 0, data$ex6 <- 1) data$ex7 <- ifelse(regexpr("7. ex7", data$var) == -1, data$ex7 <- 0, data$ex7 <- 1) ... data$ex23 <- ifelse(regexpr("23. ex23", data$var) == -1, data$ex23 <- 0, data$ex23 <- 1)
Une simple fonction "ifelse" avec pour condition une simple recherche de caractère (-1 si non présente).
Y a t-il un moyen de concaténer tout ça en un seul code par variable (éventuellement, pour l'ensemble des variables) ?
Partager