J'essaie de convertir le format suivant: à des variables de réponse binaires: p> 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. P> J'apprécierais vraiment s'il y a un moyen propre de le faire. p> p>
5 Réponses :
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)
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 La sortie ci-dessus est une matrice code>:
/ Code> de la classe
Table code>. Pour obtenir un
data.frame code>, utilisez
as.data.frame.matrix code>. P>
Combien d'épices est trop? Voici une solution via tiardy code>:
Le Le code: p> reshape2 code> -Package a également le
refaire code> -fonction.
movie Jack Kate Leo
1 Departed 1 0 1
2 Titanic 0 1 1
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