2015-08-13 14 views
7

Względnie proste pytanie, ale odpowiedź wydaje mi się umykała. Obecnie mam ramkę danych, która wygląda podobnie do tego:Porzuca ramkę danych według wierszy, a nie kolumn

0 0 0 1 1 
0 1 0 1 1 
2 1 1 0 3 

próbuję przekształcić jednej linii danych, według wierszy. Użyłem funkcji unlist i zrobiłem to, co chciałem, ale podałem je według kolumn. Dało mi to:

0,0,2,0,1,1,0,0,1,1,1,0,1,1,3 

ale czego chcę to:

0,0,0,1,1,0,1,0,1,1,2,1,1,0,3 

przepraszam, jeśli wydaje się to głupie pytanie, ale nadal jestem początkującym z R. żadnej pomocy (lub odesłania do funkcji, które mogłyby mi pomóc w ich przetwarzaniu) byłyby bardzo mile widziane.

Odpowiedz

13

Możemy transpozycję (t) zbioru danych, a następnie użyć c dostać wektora wyjściowego

c(t(df1)) 
#[1] 0 0 0 1 1 0 1 0 1 1 2 1 1 0 3 

Robiąc transpozycji, możemy przekształcić „data.frame” na „matrycy”. Zarówno w przypadku operacji data.frame lub matrix,Tak więc transpozycja zamienia kolumny na wiersze i odwrotnie i uzyskujemy oczekiwany wynik.

+1

niezwykle proste. Dziękuję za szybką odpowiedź! –

0

Można spróbować również as.vector():

x<-matrix(c(0,0,2,0,1,1,0,0,1,1,1,0,1,1,3),3,5) 

x 
    [,1] [,2] [,3] [,4] [,5] 
[1,] 0 0 0 1 1 
[2,] 0 1 0 1 1 
[3,] 2 1 1 0 3 

as.vector(t(x)) 
[1] 0 0 0 1 1 0 1 0 1 1 2 1 1 0 3 
Powiązane problemy