Il s'agit d'une partie de ma trame de données: J'ai besoin de: p> en mots; J'ai des valeurs pour la personne AK, HU et KO (et beaucoup d'autres). Tous ont noté la même chose - par conséquent, le nombre de lignes pour chaque identifiant unique est identique et que le nombre de valeurs sera également identique.
Dans cette partie de la trame de données 1 et 2 ont deux valeurs, 3 ont 3 valeurs pour chaque personne.
Il s'agit en fait de la tâche de choix forcé et donc des valeurs de valeur_1: 2 sont en réalité 1 et 0, mais je les ai remplacées avec A-Z pour montrer le tri. p> J'ai essayé: p> qui ne fait pas l'affaire, car tous sont ajoutés en dessous, tandis que j'en ai besoin d'être remodelé à long selon leur identifiant (nom), mais les différents identifiers de noms devraient alors être placés dans des colonnes séparées côte à côte. p> Merci pour votre aide. P> P>
4 Réponses :
Je devais inclure quelques petites étapes supplémentaires pour que cela soit fait puisque vous souhaitiez la sortie dans un ordre spécifique, mais cela devrait le faire: espère que cela aide! P > p>
Merci beaucoup! Malheureusement, je ne reçois pas le bon ordre des rangées. Au lieu des valeurs de la première ligne inférieure à l'autre, plus les valeurs de la 2e rangée, je reçois quelque chose de différer. Savez-vous ce qui a mal tourné?
D'accord, j'ai mal interprété votre demande le premier tour. Mais j'ai édité ma réponse avec quelque chose qui m'a donné la sortie souhaitée.
Utilisation de l'entrée affichée dans la note ci-dessous, exécutez la touche Code> Affichée dans la question, puis transformez value_1 code>,
value_2 code> et
Value_3 code> à seulement 1, 2 et 3 et ajoutez également une colonne code> subseq code> pour distinguer les lignes qui ont autrement la même clé. Débarrassez-vous de la valeur vide code> des lignes CODE> Retour à un formulaire large à l'aide de
dcast code> Supprimer le
SUBSEQ code> Colonne:
> wide
num AK HU KO
1 1 0 1 1
2 2 0 1 1
3 3 1 1 1
4 1 1 1 1
5 2 1 1 0
6 1 0 0 1
7 2 0 0 0
THX, bien que votre sortie soit différente de celle que j'ai indiquée ci-dessus. J'aurais besoin de la colonne sous chaque identifiant de nom pour répertorier la ligne de ligne, au lieu de la colonne.
Ont fixé et ajouté un chèque à la fin pour que cela donne une réponse identique à celle attendue en question.
Je comprends que mes informations ne suffisaient pas, alors je l'ai modifiée ci-dessus. En réalité, les valeurs ne sont que de 0 et 1, mais afin que je puisse montrer la réorganisation dont j'ai besoin, j'ai utilisé des lettres.
Ceci fournira la sortie souhaitée: Cependant, vous devez clarifier quelle est la logique de la colonne de colonne peuplée. Je devais supposer la même lettre (non sensible à la casse) pour la colonne AK aura le même nombre. p> p>
Clarifier; Chaque personne avec un nom de nom a dû évaluer le même nombre d'entités; Voici donc que chacun d'entre eux a dû évaluer 3 groupes et chaque groupe a un nombre défini d'éléments (dans l'exemple de 2 ou 3 éléments). Les remodeler vous débarrasseront du regroupement, mais conserve la commande. Cela clarifie-t-il quelque chose?
Alternativement, voici une solution qui utilise Il reproduit le résultat attendu, y compris la colonne melt () code> et
dcast () code> à partir de la catégorie data.table paquet.
rowid (nom) code> est utilisé pour créer des numéros de ligne pour chaque nom code> individuellement code> individuellement.
num code>. p>
library(data.table)
df <- fread("
name value_1 value_2 value_3
AK x X
AK y Y
AK m M B
HU z Z
HU a A
HU f F C
KO b B
KO c C
KO d D B", fill = TRUE)