Tôi đang tìm một cách linh hoạt hơn để lấy dữ liệu từ một khung dữ liệu đến một mảng đa chiều.Làm thế nào để lấy một data.frame vào một mảng đa chiều trong R?
Tôi muốn có thể tạo nhiều thứ nguyên nếu cần từ nhiều biến trong khung dữ liệu như mong muốn.
Hiện tại, phương pháp này phải được điều chỉnh cho từng data.frame, yêu cầu đặt cược con để tạo thành vectơ.
Tôi rất thích điều gì đó theo các phương pháp tan chảy/đúc trong 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
... bạn luôn có 2 cột số và sau đó là 0 hoặc nhiều cột yếu tố? – Tommy