如何将时间序列数据组织到数据帧的对角线上?
问题描述:
如果我有一个每月的时间序列,像这样:如何将时间序列数据组织到数据帧的对角线上?
xts <- ts(c(1:48), frequency = 12)
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1 1 2 3 4 5 6 7 8 9 10 11 12
2 13 14 15 16 17 18 19 20 21 22 23 24
3 25 26 27 28 29 30 31 32 33 34 35 36
4 37 38 39 40 41 42 43 44 45 46 47 48
我怎么能组织的价值观是对“对角线”只是,与零的其他地方?如下面(这种格式携带的所有值xts
):
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1 1 0 0 0 0 0 0 0 0 0 0 0
2 0 2 0 0 0 0 0 0 0 0 0 0
3 0 0 3 0 0 0 0 0 0 0 0 0
4 0 0 0 4 0 0 0 0 0 0 0 0
5 0 0 0 0 5 0 0 0 0 0 0 0
6 0 0 0 0 0 6 0 0 0 0 0 0
7 0 0 0 0 0 0 7 0 0 0 0 0
8 0 0 0 0 0 0 0 8 0 0 0 0
9 0 0 0 0 0 0 0 0 9 0 0 0
10 0 0 0 0 0 0 0 0 0 10 0 0
11 0 0 0 0 0 0 0 0 0 0 11 0
12 0 0 0 0 0 0 0 0 0 0 0 12
13 13 0 0 0 0 0 0 0 0 0 0 0
14 0 14 0 0 0 0 0 0 0 0 0 0
15 0 0 15 0 0 0 0 0 0 0 0 0
16 0 0 0 16 0 0 0 0 0 0 0 0
17 0 0 0 0 17 0 0 0 0 0 0 0
18 0 0 0 0 0 18 0 0 0 0 0 0
19 0 0 0 0 0 0 19 0 0 0 0 0
20 0 0 0 0 0 0 0 20 0 0 0 0
21 0 0 0 0 0 0 0 0 21 0 0 0
22 0 0 0 0 0 0 0 0 0 22 0 0
23 0 0 0 0 0 0 0 0 0 0 23 0
24 0 0 0 0 0 0 0 0 0 0 0 24
我使用的是建模软件包,要求这种格式,而在像“矩阵”包找到一个解决办法有一点运气和'diag',它们似乎没有设置为以这种方式安排数据。
答
通过行绑定诊断的解决方案。
rbind(diag(1:12,12,12), diag(13:24, 12,12), diag(25:36, 12,12), diag(37:48,12,12))