Как преобразовать data.frame в многомерный массив в R?

Я ищу более универсальный способ перехода от data.frame к многомерному массиву.

Я хотел бы иметь возможность создавать столько измерений, сколько необходимо, из любого количества переменных во фрейме данных.

В настоящее время метод должен быть адаптирован к каждому кадру данных, требует субаренды для формирования вектора.

Мне бы хотелось что-нибудь по методам плавки/литья в plyr.

   data<-data.frame(coord.name=rep(1:10, 2),
             x=rnorm(20),
             y=rnorm(20),
             ID=rep(c("A","B"), each=10))


    data.array<-array(dim=c(10, 2, length(unique(data$ID))))

    for(i in 1:length(unique(data$ID))){
      data.array[,1,i]<-data[data$ID==unique(data$ID)[i],"x"]
      data.array[,2,i]<-data[data$ID==unique(data$ID)[i],"y"]
    }

data.array
,, 1

      [,1] [,2]
 [1,]    1    1
 [2,]    3    3
 [3,]    5    5
 [4,]    7    7
 [5,]    9    9
 [6,]    1    1
 [7,]    3    3
 [8,]    5    5
 [9,]    7    7
[10,]    9    9

,, 2

      [,1] [,2]
 [1,]    2    2
 [2,]    4    4
 [3,]    6    6
 [4,]    8    8
 [5,]   10   10
 [6,]    2    2
 [7,]    4    4
 [8,]    6    6
 [9,]    8    8
[10,]   10   10
6
задан Etienne Low-Décarie 16 April 2012 в 16:38
поделиться