我在 R 中有一个 3 维数组,可以melt()
用来生成 long data.frame
:
library(abind)
library(reshape2)
a = matrix(1:4, nrow=2, ncol=2)
x = abind(a, a, along=3)
y = melt(x)
y
产生:
Var1 Var2 Var3 value
1 1 1 1 1
2 2 1 1 2
3 1 2 1 3
4 2 2 1 4
5 1 1 2 1
6 2 1 2 2
7 1 2 2 3
8 2 2 2 4
如何将数据转换回原始数组?它应该与 一起使用acast
,但我找不到合适的论据:
y['idx'] = rownames(y)
acast(y, idx~Var1+Var2+Var3, value.var='value') # does not work this way