2011-07-05 21 views
8

Mam ramkę danych w R z trzema zmiennymi o nazwach na przykład df$V1, df$V2, df$V3. df$V1 i df$V2 to oba czynniki, natomiast df$V3 jest numeryczny.R: konwertowanie ramek danych do tabeli

df <- data.frame(
    V1 = letters[1:4], 
    V2 = rep(LETTERS[1:3], each = 4), 
    V3 = 1:12 
) 

szukam sposób, aby utworzyć tabelę, która zawiera wartości w df$V3 z df$V1 jako wiersze i df$V2 jak kolumny.

Próbowałem wariacji na stole, ale nigdzie go nie dostałem. Być może ktoś może pomóc, Z góry dziękuję, Davy.

+0

Ten [podobne pytanie] (http://stackoverflow.com/a/9617424/210673) ma teraz listę różne sposoby zrobienia tego – Aaron

Odpowiedz

17

Jest to alternatywa dla table:

xtabs(V3 ~ V1 + V2, df) 
6

Jak wspomniano przez ran2, można użyć pakietu reshape. Oto przykład:

df <- data.frame(V1 = factor(sample(letters[1:5],100,replace=TRUE)), 
       V2 = factor(toupper(sample(letters[1:5],100,replace=TRUE))), 
       V3 = runif(100)) 
library(reshape) 
cast(df, V1 ~ V2, mean) 
+3

Zobacz także 'reshape2', który jest znacznie szybszy – hadley

Powiązane problemy