2015-05-21 26 views
6

Uwaga: To nie jest pytanie graficzne.Konwersja z macierzy n x m na długą macierz w R

mam matrycę NXM:

> m = matrix(1:6,2,3) 
> m 
    a b c 
d 1 2 3 
e 4 5 6 

chciałbym przekonwertować to do długiego matrycy:

> m.l 
a d 1 
a e 4 
b d 2 
b e 5 
c d 3 
c e 6 

Oczywiście zagnieżdżony dla pętli będzie działać, ale wiem, że są dużo miły narzędzia do przekształcania macierzy w R. Do tej pory znalazłem jedynie literaturę na temat konwersji z długich lub szerokich macierzy na matrycę nxm, a nie na odwrót. Czy brakuje mi czegoś oczywistego? Jak mogę wykonać tę konwersję?

Dziękujemy!

Odpowiedz

7

Jeśli potrzebujesz pojedynczej macierzy kolumny

matrix(m, dimnames=list(t(outer(colnames(m), rownames(m), FUN=paste)), NULL)) 
# [,1] 
#a d 1 
#a e 4 
#b d 2 
#b e 5 
#c d 3 
#c e 6 

dla wyjścia data.frame, można użyć melt z reshape2

library(reshape2) 
melt(m) 
+0

Wow, to jest nieco bardziej elegancki haha. Wielkie dzięki. – user3030872