Je rencontre un problème lors de l'analyse avec R.
J'ai une trame de données comme celle-ci:
Name | Group | Count
Person 1 | A | 3
Person 2 | A | 1
Person 3 | A | 0
Person 1 | B | 5
Person 2 | B | 0
Person 3 | B | 1
Person 1 | C | 1
et je devrais le "développer" (je ne sais pas si le bon terme) pour être comme ceci:
Person 1 | A
Person 1 | A
Person 1 | A
Person 2 | A
Person 1 | B
Person 1 | B
etc.
Il prend donc la valeur de la paire Personne 1 et A (dans cet exemple, 3) et crée trois lignes avec la personne 1 et A et le fait pour chaque personne - Combinaison de groupe. Impossible de trouver de bons mots pour effectuer une recherche en ligne.
reshape()
fonctionreshape2
package dans R. Cela pourrait également aider àdput
2 exemples de cadres de données: un avec l'entrée et un avec la sortie.Réponses:
Bien qu'il s'agisse d'un package très utile, je pense que le remodelage est excessif dans ce cas, le représentant peut faire le travail.
Voici quelques exemples de données:
Maintenant, pour «l'étendre»:
Je ne pouvais pas trouver un moyen de travailler directement sur la trame de données du haut de ma tête, donc je travaille sur chaque variable séparément, puis je les rassemble, ce qui est un peu moche mais devrait être OK tant que vous prenez soin de toujours utiliser la même variable pour les comptes.
la source
df[rep(seq_len(nrow(df)), df$count), 1:2]
:?Vous pouvez utiliser la fonction untable du package de remodelage.
Compte tenu du df ci-dessus (par @ Gaël Laurans)
la source
untable
fait exactement ce que j'ai mentionné dans mon commentaire :-) Merci de me rappeler cette fonction!Et
uncount
detidyr
donne maintenant le même résultat que ci - dessus.la source