read.zoo在我将格式指定为";%时添加月份和日期“是”;
我正在尝试使用read.zoo在我将格式指定为";%时添加月份和日期“是”;,r,time-series,zoo,R,Time Series,Zoo,我正在尝试使用read.zoo将data.frame转换为zoo对象。这一切似乎都很好,除了原始索引只包含年份(没有月份或天数),但当我在中阅读时,它们出现了 有没有办法创建索引仅为年的新对象 test.df3 <- data.frame (Country = rep (c (1, 5000), each = 10), Year = factor(rep(1990:1999, 2)), Valu
read.zoo
将data.frame
转换为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 1 2 50
1990 5000 19 0
1991 1 10 30
1991 5000 3 20
指定
format
和noFUN
或tz
会导致启发式假设您想要一个“Date”
类索引。指定FUN=identity
不进行转换,并省略格式=
。另外,似乎两个国家的时间序列是混合的,因此我们可以使用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
完全正确!这只是一个玩具,我将不得不对由许多国家组成的更大的数据集执行同样的操作。然后我需要使用rollapply计算一些滚动平均值,因此,如果有一种方法将它们全部保留在两列中,然后执行后续的滚动平均值,这将是有利的,但我不确定它是否可行。如果您想以长形式表示它,那么它不是一个时间序列,所以zoo(这是时间序列基础设施的一个包)不适用。使用data.frame或data.table。
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