Преобразование кадра данных в матрицу с помощью plyr daply

Я пытаюсь использовать функцию daply в plyr ], но я не могу заставить его правильно выводить. Хотя переменная, составляющая матрицу, является числовой, элементы матрицы являются списками, а не самой переменной. Вот небольшое подмножество данных, например, ради:

   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

И я хотел бы иметь возможность визуализировать данные в матричном формате, который выглядел бы примерно так:

  Month
Vehicle Oct-10 Nov-10 Dec-10
  31057    256    267    159
  31059    316    293    268
  31060    348    250    206

Вот пара альтернативных синтаксисов, которые я использовать (последнее, потому что в моем исходном фрейме данных больше столбцов, чем я показываю здесь):

daply(DF, .(Vehicle, Month), identity)
daply(DF,.(Vehicle,Month), colwise(identity,.(Samples)))

Однако то, что я получаю, довольно заумно:

       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

Я использовал функцию str для вывода, поскольку некоторые комментаторы предложил, и вот отрывок:

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

Что мне не хватает? Кроме того, есть ли способ сделать это просто с помощью базовых пакетов? Спасибо!

Ниже Dput фрейма данных, если вы хотите воспроизвести это:

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))
7
задан JD Margulici 10 August 2011 в 22:52
поделиться