我试图在R中找到一种简单的方法来获取具有person_id,日期和几个变量字段的数据集(假设为20,命名为x1, x2…x20)并将其转换为三维数组(m × n × p)其中m是人数,n是离散时间段的数量,p是变量的数量。
当前数据显示为:
m1 n1 x1 x2 x3 ... x20
m1 n2 x1 x2 x3 ... x20
m1 nN . . . ... .
m2 n1 x1 x2 x3 ... x20
. . . . . ... .
. . . . . ... .
mM nN x1 x2 x3 x4 ... x2
最后,我希望它看起来像这样:
[, , 1]
[, 1, ] [, 2, ] [, 3, ][, ..., ][, n, ]
[1, , ]
[2, , ]
[3 , ,]
[... , ,]
[m, , ]
[, , 2]
[, , 3]
[, , ...]
[, , p]
为简单起见,我们假设时间序列是对齐良好的(每个m具有完全相同的n个数)。
谢谢!
使用
library(reshape2)
# You probably need to melt your data first
dataset.m <- melt(dataset, id.vars = c("m", "n"))
acast(dataset.m, m ~ n ~ variable)