当我将格式指定为“%Y”时,read.zoo会添加月份和日期

时间:2014-01-10 14:39:34

标签: r time-series zoo

我正在尝试使用data.framezoo转换为read.zoo个对象。这一切看起来都很好,只是原始索引只包含年份(没有几个月或几天),但是当我看到它们出现时。

有没有办法创建索引为年的新对象?

test.df3 <- data.frame (Country = rep (c (1, 5000), each = 10),
                        Year = factor(rep(1990:1999, 2)),
                        Values = sample(x =  1:20, size = 20, replace = TRUE),
                        Weights = sample (x = seq (0,50,10), size = 20,
                                          replace =TRUE)
                       )
stuff <- read.zoo (test.df3, format = "%Y", index.column = 2)

这就是我得到的:

> head(stuff)
           Country Values Weights
1990-01-10       1      2      50
1990-01-10    5000     19       0
1991-01-10       1     10      30
1991-01-10    5000      3      20

这是我希望得到的:

> head(stuff)
           Country Values Weights
1990             1      2      50
1990          5000     19       0
1991             1     10      30
1991          5000      3      20

1 个答案:

答案 0 :(得分:2)

指定format而不是FUNtz会导致启发式假设您需要"Date"类索引。指定FUN=identity不进行转换,并省略format=。此外,似乎有两个国家混合的时间序列,因此我们可以使用split=将它们分成各自的系列。

read.zoo(test.df3, index = "Year", split = "Country", FUN = identity)

给出:

     Values.1 Weights.1 Values.5000 Weights.5000
1990        6        50           2           30
1991       14        20           7           50
1992        7        40           6            0
1993       18        30          17           20
1994       10        50          13            0
1995        3         0          17           40
1996        4        20          16           40
1997       20        20          18           20
1998        9        20          16           30
1999       20         0          15           30