Ho una matrice di caratteri con struttura come la seguente:allineamento come righe di una matrice di caratteri 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
Immaginate questa sia una matrice di animali in locali con i dati per ogni lingua definita da successive coppie di colonne. Alcuni animali possono essere comuni tra locali, ma le località possono anche avere animali unici. In definitiva voglio fare una mappa termica di questi dati, e quindi necessità di riordinare questa matrice di avere una struttura in cui v'è una colonna per tutti i tipi di animali e colonne successive corrispondenti ai numeri in ogni 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 altre parole, mi hanno
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)
e vogliono
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)
idee su come realizzare questa riorganizzazione? Potrebbe essere fatto con cicli e contabilità, ma sicuramente c'è un modo più elegante che mi manca.
grazie per avermi insegnato qualcosa di nuovo su 'cbind'. –
Grazie, non ho mai lavorato con reshape2, questo è il trucco! – user2535366