11
votes

Remodeler plusieurs variables catégoriques aux variables de réponse binaire

J'essaie de convertir le format suivant: xxx

à des variables de réponse binaires: xxx

J'ai essayé la solution décrite dans Convertir les données de la ligne en colonnes binaires Mais je pourrais le faire fonctionner pour deux variables, pas trois.

J'apprécierais vraiment s'il y a un moyen propre de le faire.


0 commentaires

5 Réponses :


7
votes

Un moyen de remodeler votre data.frame code> est avec le package Remeape2 code>, à l'aide de MAXT code> et dcast code>. Par exemple:

library(reshape2)
long.mydata <- melt(mydata, id.vars = "movie")
wide.mydata <- dcast(long.mydata, movie ~ value, function(x) 1, fill = 0)


0 commentaires

4
votes

Comme ils disent que la variété est l'épice de la vie, voici une approche de la base R à l'aide de la table : xxx

La sortie ci-dessus est une matrice / Code> de la classe Table . Pour obtenir un data.frame , utilisez as.data.frame.matrix . xxx


0 commentaires

15
votes

Combien d'épices est trop? Voici une solution via tiardy : xxx


0 commentaires

1
votes

Le reshape2 code> -Package a également le refaire code> -fonction.

Le code: p>

     movie Jack Kate Leo
1 Departed    1    0   1
2  Titanic    0    1   1


0 commentaires

1
votes

Une option Mise à jour TIDYR CODE>-BASED est de convertir en forme longue, utilisez complète code> pour remplir les combinaisons manquantes de films et d'acteurs, puis convertissez simplement un is.na code> test à une valeur numérique. Puis remodelez à large.

library(tidyr)

mydata %>%
  pivot_longer(starts_with("actor"), names_to = "acted") %>%
  complete(movie, value) %>%
  dplyr::mutate(acted = as.numeric(!is.na(acted))) %>%
  pivot_wider(names_from = value, values_from = acted)
#> # A tibble: 2 x 4
#>   movie     Jack   Leo  Kate
#>   <fct>    <dbl> <dbl> <dbl>
#> 1 Departed     1     1     0
#> 2 Titanic      0     1     1


0 commentaires