将3D矩阵转换为数据框

时间:2019-03-03 01:11:51

标签: r matrix vector

我有一个尺寸为9x3x12的3维矩阵(只是一个样本)。该矩阵值是在不同纬度(3),经度(9)和时间戳(12)处记录的温度。

另一方面,我将纬度,经度和时间戳记作为矢量。喜欢... lat = [13,15 ...] lon = [100,105,109,111 .....] 时间戳= [“ 1992061000”“ 1992061100”“ 1992061200”“ 1992061300”“ 1992061400” ....]

我的意图是创建一个具有9x3x12行的数据帧,其中每一行对应一个温度值,并具有四列,即经度,经度,时间戳和温度。

谁能建议一种没有太多循环的最佳方法。一种方法是在创建一个空的数据帧后遍历向量和矩阵,但我担心这并不是所有的最佳选择。

1 个答案:

答案 0 :(得分:1)

您可以使用expand.grid()进行尺寸组合,并使用as.vector来获取数据作为矢量。

请注意尺寸顺序!

dim1 <- c('a', 'b')
dim2 <- c('a', 'b', 'c')
dim3 <- c('a', 'b', 'c', 'd')

data <- array(1:24, c(2,3,4), dimnames = list(dim1, dim2, dim3))
data

cbind(expand.grid(dim1,  dim2, dim3), val = as.vector(data))
相关问题