Ich habe nicht in der Lage gewesen, eine Lösung für dieses Problem so weit zu finden ... Dieser kamen in der Nähe: 1Populate mehr Spalten von Werten in einer Spalte
Hier ist eine kleine Teilmenge meines Datenrahmen, df:
ANIMAL(chr) MARKER(int) GENOTYPE(int)
"1012828" 1550978 0
"1012828" 1550982 2
"1012828" 1550985 1
"1012830" 1550982 0
"1012830" 1550985 2
"1012830" 1550989 2
Und was ich will, ist dies ...
ANIMAL MARKER_1550978 MARKER_1550982 MARKER_1550985 MARKER_1550989
"1012828" 0 2 1 NA
"1012830" NA 0 2 2
Mein Gedanke war zunächst Spalten für jeden Marker erstellen nach der referenzierten Frage
markers <- unique(df$MARKER)
df[,markers] <- NA
da ich keine ganzen Zahlen für Spaltennamen in R. habe, kann ich „MARKER_“ auf jede neue Spalte hinzugefügt, so dass es funktionieren würde:
df$MARKER <- paste("MARKER_",df$MARKER) markers <- unique(df$MARKER) df[,markers] <- NA
Jetzt all meine neue Spalten ich habe, aber mit der gleichen Anzahl von Zeilen. Ich werde kein Problem damit haben, unnötige Zeilen und Spalten loszuwerden, aber wie würde ich meine neuen Spalten korrekt mit ihrem korrekten GENOTYPE von MARKER und ANIMAL füllen? Ich rate ein oder mehrere davon: Indexierung, Übereinstimmung,% in% ... aber ich weiß nicht, wo ich anfangen soll. Die Suche nach diesen im Stackoverflow ergab nichts, was meiner Herausforderung angemessen schien.
Sie möchten Ihre Datenrahmen von schmal bis breit verbreiten. Check out 'tidyr :: spread' – yeedle
speziell' tidyr :: verbreiten (df, MARKER, GENOTYPE) ' – MrFlick