ich eine Zeichenmatrix mit Struktur haben wie folgt aus:Aligning wie Zeilen in einer Zeichenmatrix in R
dog 1 cow 9 mouse 7
bird 10 tiger 1 gnu 2
tiger 3 deer 7 deer 27
skunk 2 rat 50 NA NA
mouse 8 snake 3 NA NA
cow 7 NA NA NA NA
sheep 21 NA NA NA NA
gnu 5 NA NA NA NA
diese Stellen Sie sich eine Matrix von Tieren in Gegenden sein, wobei die Daten für jedes Gebietsschema definiert durch aufeinander folgende Paare von Spalten. Einige Tiere sind möglicherweise zwischen den Orten gemeinsam, aber auch Orte können einzigartige Tiere haben. Schließlich möchte ich eine Heatmap dieser Daten machen, und somit müssen diese Matrix neu zu ordnen, eine Struktur zu haben, in der es eine Spalte für alle Arten Tiere ist und aufeinanderfolgende Spalten Zahlen entsprechen in jedem locale:
dog 1 NA NA
tiger 3 1 NA
skunk 2 NA NA
mouse 8 NA NA
cow 7 9 NA
sheep 21 NA NA
gnu 5 NA 2
deer NA 7 27
rat NA 50 NA
snake NA 3 NA
mouse NA NA 7
bird 10 NA NA
In Mit anderen Worten, ich habe
A1 <- c("dog", "bird", "tiger", "skunk", "mouse", "cow", "sheep", "gnu")
B1 <- as.character(c(1, 10, 3, 2, 8, 7, 21, 5))
A2 <- c("cow", "tiger", "deer", "rat", "snake", NA, NA, NA)
B2 <- as.character(c(9, 1, 7, 50, 3, NA, NA, NA))
A3 <- c("mouse", "gnu", "deer", NA, NA, NA, NA, NA)
B3 <- as.character(c(7, 2, 27, NA, NA, NA, NA, NA))
TheMatrix <- cbind(A1, B1, A2, B2, A3, B3)
und wollen
a1 <- c("dog", "tiger", "skunk", "mouse", "cow", "sheep", "gnu", "deer", "rat", "snake", "mouse", "bird")
b1 <- as.character(c(1, 3, 2, 8, 7, 21, 5, NA, NA, NA, NA, 10))
b2 <- as.character(c(NA, 1, NA, NA, 9, NA, NA, 7, 50, 3, NA, NA))
b3 <- as.character(c(NA, NA, NA, NA, NA, NA, 2, 27, NA, NA, 7, NA))
DesiredResult <- cbind(a1, b1, b2, b3)
Ideen auf, wie man diese Reorganisation erreichen? Es könnte mit Schleifen und Buchhaltung gemacht werden, aber sicherlich gibt es einen eleganteren Weg, den ich vermisse.
Danke, dass du mir etwas Neues über 'cbind' beigebracht hast. –
Danke, ich habe noch nie mit reshape2 gearbeitet, das macht den Trick! – user2535366