我有一个zoo
包含 NA 的多元时间序列,我想将其转换为季度序列。
df1 <-1:12
df1[df1%%4==0] <- NA
zoo.object <- zoo(matrix(df1, ncol=2),as.Date("2013-01-01")+(0:5)*35)
colnames(zoo.object) <-c("stock1","stock2")
> zoo.object
stock1 stock2
2013-01-01 1 7
2013-02-05 2 NA
2013-03-12 3 9
2013-04-16 NA 10
2013-05-21 5 11
2013-06-25 6 NA
理想情况下,我想为每只股票保留本季度的早期数据。我曾尝试从 xts 包中进行 to.quarterly,但问题是它删除了带有 NA 的行。
> to.quarterly(zoo.object,OHLC = FALSE)
stock1 stock2
2013 Q1 3 9
2013 Q2 5 11
Warning message:
In to.period(x, "quarters", indexAt = indexAt, name = name, ...) :
missing values removed from data
我也考虑过使用na.locf
,但这会将数据从一个季度带到下一个季度。(在 2013 年 4 月 16 日(第 1 季度)的示例中,股票 1 不应等于 3(因为这是第 2 季度的值)。Areverse na.locf
也不起作用,因为它可以携带后面季度的数字。
使用我的示例,这就是我想要的:
stock1 stock2
2013 Q1 1 7
2013 Q2 5 10