Ich habe einen Datensatz in r mit zwei Spalten mit numerischen Daten und einem mit einem Bezeichner. Einige der Zeilen teilen sich die gleiche Kennung (d. H. Sie sind die gleiche Person), enthalten jedoch unterschiedliche Daten. Ich möchte den Bezeichner verwenden, um diejenigen, die einen Bezeichner aus einer Zeile teilen, in eine Spalte zu verschieben. Es gibt derzeit 600 Zeilen, aber es sollte 400 sein.Verschieben von Zeilen zu Spalten in R mit ID
Kann jemand R Code teilen, der dies tun könnte? Ich bin neu bei R und habe das Umform (cast) Programm ausprobiert, aber ich kann es nicht wirklich nachvollziehen und bin mir nicht sicher, ob es genau das ist, was ich versuche.
Jede Hilfe dankbar geschätzt.
UPDATE:
Aktuelle
ID Age Sex
1 3 1
1 5 1
1 6 1
1 7 1
2 1 2
2 12 2
2 5 2
3 3 1
Erwartete Ausgabe
ID Age Sex Age2 Sex2 Age3 Sex3 Age4 Sex4
1 3 1 5 1 6 1 7 1
2 1 2 12 2 5 2
3 3 1
UPDATE 2:
Bisher habe ich versucht, die Schmelze mit und dcast Befehle von reshape2. Ich komme dorthin, aber es sieht immer noch nicht ganz richtig aus. Hier ist mein Code:
x <- melt(example, id.vars = "ID")
x$time <- ave(x$ID, x$ID, FUN = seq_along)
example2 <- dcast (x, ID ~ time, value.var = "value")
und hier ist die Ausgabe, die Code verwendet:
ID A B C D E F G H (for clarity i have labelled these)
1 3 5 6 7 1 1 1 1
2 1 12 5 2 2 2
3 3 1
So, wie Sie wahrscheinlich sehen können, es ist das Verwechseln von den ‚Geschlecht‘ und ‚Alter‘ Variablen und Kombinieren sie in der gleichen Spalte. Zum Beispiel hat Spalte D den Wert '7' für Person 1 (Alter 4), aber '2' für Person 2 (Geschlecht). Ich kann sehen, dass mein Code nicht angibt, wo die numerischen Werte umgewandelt werden sollen, aber ich weiß nicht, wie ich diesen Teil programmieren soll. Irgendwelche Ideen?
zeigen Sie ein kleines reproduzierbares Beispiel und erwartete Ausgabe auf der Grundlage dieser – akrun
Bitte 'edit' Ihrer Post und aktualisiert es – akrun
wäre hilfreich zu zeigen, was Sie versucht haben, was mit diesem Versuch schief gelaufen ist, was Sie sonst noch versucht haben. SO ist kein Platz für andere, nur Code für Sie zu schreiben – workabyte