我正在尋找一種更通用的方式來從data.frame獲取多維數組。如何將data.frame轉換爲R中的多維數組?
我希望能夠根據需要從數據框中儘可能多的變量中創建所需的維數。
目前,該方法必須針對每個數據框架進行量身定製,需要轉租以形成一個向量。
我會喜歡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
...你總是會有2個數字列,然後是零個或多個因子列嗎? – Tommy 2012-04-05 22:33:05