2013-03-20 20 views
0

我想在R中找到一个简单的方法来获取具有person_id,日期和几个变量字段的数据集(比方说20 ,命名为x1,x2 ... x20)并将其转换为三维数组(m乘n乘p),其中m是人数,n是离散时间段的数量,p是变量。R - 面板数据长形式到形式人x时间x功能的3维阵列

目前的数据显示为:

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)。

谢谢!

回答

0

使用reshape2:

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) 
+0

感谢。我通读了熔化和咖啡的功能。这将很好地工作。我会投票,但我还没有足够的街头信誉。 – Jeremy 2013-03-20 15:31:20

相关问题