2016-04-27 59 views
1

如果我有一個每月的時間序列,像這樣:如何將時間序列數據組織到數據幀的對角線上?

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',它們似乎沒有設置爲以這種方式安排數據。

回答

0

通過行綁定診斷的解決方案。

rbind(diag(1:12,12,12), diag(13:24, 12,12), diag(25:36, 12,12), diag(37:48,12,12))