Convertendo um quadro de dados em uma matriz com plyr daply
Estou tentando usar odaply
na funçãoplyr
package mas não consigo obtê-lo corretamente. Embora a variável que compõe a matriz seja numérica, os elementos da matriz são listas, não a variável em si. Aqui está um pequeno subconjunto dos dados, por exemplo, sake:
Month Vehicle Samples
1 Oct-10 31057 256
2 Oct-10 31059 316
3 Oct-10 31060 348
4 Nov-10 31057 267
5 Nov-10 31059 293
6 Nov-10 31060 250
7 Dec-10 31057 159
8 Dec-10 31059 268
9 Dec-10 31060 206
E eu gostaria de poder visualizar os dados em um formato de matriz, que seria algo como isto:
Month
Vehicle Oct-10 Nov-10 Dec-10
31057 256 267 159
31059 316 293 268
31060 348 250 206
qui estão algumas sintaxes alternativas que eu uso (a última porque meu dataframe original tem mais colunas do que mostro aqui
daply(DF, .(Vehicle, Month), identity)
daply(DF,.(Vehicle,Month), colwise(identity,.(Samples)))
No entanto, o que eu recebo é bastante obscuro:
Month
Vehicle Oct-10 Nov-10 Dec-10
31057 List,3 List,3 List,3
31059 List,3 List,3 List,3
31060 List,3 List,3 List,3
Eu usei ostr
funcionam na saída, como alguns comentaristas sugeriram, e aqui está um trecho:
List of 9
$ :'data.frame': 1 obs. of 3 variables:
..$ Month : Ord.factor w/ 3 levels "Oct-10"<"Nov-10"<..: 1
..$ Vehicle: Factor w/ 3 levels "31057","31059",..: 1
..$ Samples: int 256
$ :'data.frame': 1 obs. of 3 variables:
..$ Month : Ord.factor w/ 3 levels "Oct-10"<"Nov-10"<..: 1
..$ Vehicle: Factor w/ 3 levels "31057","31059",..: 2
..$ Samples: int 316
O que estou perdendo? Além disso, existe uma maneira de fazer isso simplesmente com os pacotes base? Obrigado
Bow é oDput
do quadro de dados, se você deseja reproduzir isso:
structure(list(Month = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 3L,
3L, 3L), .Label = c("Oct-10", "Nov-10", "Dec-10"), class = c("ordered",
"factor")), Vehicle = structure(c(1L, 2L, 3L, 1L, 2L, 3L, 1L,
2L, 3L), .Label = c("31057", "31059", "31060"), class = "factor"),
Samples = c(256L, 316L, 348L, 267L, 293L, 250L, 159L, 268L,
206L)), .Names = c("Month", "Vehicle", "Samples"), class = "data.frame", row.names = c(NA,
9L))