我想找一个更通用的方法将数据框转换成多维数组。
我希望能够根据需要从数据框中的任意变量创建所需数量的维度。
目前,该方法必须针对每个数据框进行定制,并需要子集来形成向量。
我希望有类似于plyr中的melt / cast方法的东西。
我希望能够根据需要从数据框中的任意变量创建所需数量的维度。
目前,该方法必须针对每个数据框进行定制,并需要子集来形成向量。
我希望有类似于plyr中的melt / cast方法的东西。
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