Skip to content

Instantly share code, notes, and snippets.

@juba
Last active June 21, 2019 10:41
Show Gist options
  • Save juba/cb1a60c5d5d1c62c46f6b1ae938f13de to your computer and use it in GitHub Desktop.
Save juba/cb1a60c5d5d1c62c46f6b1ae938f13de to your computer and use it in GitHub Desktop.
library(tidyverse)
library(questionr)
## On recrée le tableau d'exemple
df <- tibble(
producteur = c("Bénévole",
"Rémunérée",
"Rémunérée, Bénévole",
"Bénévole, Rémunérée",
"Rémunérée")
)
df
#> # A tibble: 5 x 1
#> producteur
#> <chr>
#> 1 Bénévole
#> 2 Rémunérée
#> 3 Rémunérée, Bénévole
#> 4 Bénévole, Rémunérée
#> 5 Rémunérée
## En utilisant multi.split, on peut transformer la variable
## couleur en une série de variables 0/1
tab <- multi.split(df$producteur, split.char = ", ")
tab
#> df$producteur.Bénévole df$producteur.Rémunérée
#> 1 1 0
#> 2 0 1
#> 3 1 1
#> 4 1 1
#> 5 0 1
## On peut facilement rajouter le nombre total de "1" pour
## chaque ligne à ce tableau avec rowSums
tab$totalOui <- rowSums(tab)
tab
#> df$producteur.Bénévole df$producteur.Rémunérée totalOui
#> 1 1 0 1
#> 2 0 1 1
#> 3 1 1 2
#> 4 1 1 2
#> 5 0 1 1
## Enfin, si on souhaite "raccrocher" ces nouvelles variables
## à notre tableau de données de dépaet, on peut faire :
df <- df %>% bind_cols(tab)
df
#> # A tibble: 5 x 4
#> producteur `df$producteur.Bénévol… `df$producteur.Rémuné… totalOui
#> <chr> <dbl> <dbl> <dbl>
#> 1 Bénévole 1 0 1
#> 2 Rémunérée 0 1 1
#> 3 Rémunérée, Bénév… 1 1 2
#> 4 Bénévole, Rémuné… 1 1 2
#> 5 Rémunérée 0 1 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment