我有一个要转换为三维数组的数据框。数据框中的一列应用作分组变量,用于将帧拆分为可组合成数组的二维矩阵。在下面的最小工作示例中,数据帧应由变量“i”拆分为矩阵,然后组合成一个 4x4x2 数组。该解决方案对于大型数据集应该是实用的,理想情况下可以推广到将数据帧转换为维度数组。
# Make reproducible
set.seed(123)
df <- {
data.frame(i=rep(1:2, each=4),
x=rep(rep(0:1, each=2), 2),
y=rep(rep(0:1, 2), 2),
l=rnorm(8))
}
df
# i x y l
# 1 1 0 0 -0.56047565
# 2 1 0 1 -0.23017749
# 3 1 1 0 1.55870831
# 4 1 1 1 0.07050839
# 5 2 0 0 0.12928774
# 6 2 0 1 1.71506499
# 7 2 1 0 0.46091621
# 8 2 1 1 -1.26506123
注意:我怀疑 Hadley Wickham 的 plyr 可能会提供所需的工具,也许是 daply?