2

假设我有一个每月一系列的动物园数据,其中包含来自集合 {0,1} 的信号。

例如

         a b c
Oct 2005 1 0 1
Nov 2005 0 1 1
Dec 2005 0 1 0
Jan 2006 1 0 0
Feb 2006 1 1 0
Mar 2006 0 0 1
Apr 2006 0 0 1
May 2006 0 1 1
Jun 2006 1 1 0
Jul 2006 0 1 1
Aug 2006 1 0 0
Sep 2006 0 1 1
Oct 2006 0 1 1
Nov 2006 1 0 0
Dec 2006 0 0 1
Jan 2007 1 1 1
Feb 2007 0 1 0
Mar 2007 1 1 0
Apr 2007 0 0 0
May 2007 1 0 0

是否有一种巧妙的矢量化方法来使用信号值填充月份之间的每日数据?此外,它需要滞后一移。所以对于第 1 行,2005 年 10 月。a,b,c= c(1,0,1),我想用该集合 {1,0,1} 填充 2005 年 11 月的所有内容。接下来,将是 2005 年 11 月 = {0,1,1},整个 12 月都将填充这些值......等等,直到第 n 个月。

我宁愿从每月规模开始生成,但要分析填充的每日值。我正在考虑诸如自动过滤或excel中的数据透视表之类的东西。

4

1 回答 1

2

多亏了动物园,这实际上相当简单。首先,将对象的索引从 转换yearmonDate。然后生成从该系列的开始到结束的每日日期序列。最后,合并并填充缺失值。

# assuming your monthly series is called 'Z'
# create new object and convert index to Date
z <- Z
index(z) <- as.Date(index(z))

# generate daily sequence
# note that yearmon are converted to the first Date of the month,
# so I add one month and subtract one day from the last yearmon value
dailySeq <- seq(start(z), as.Date(end(Z)+1/12)-1, by="1 day")

# merge z with empty zoo object containing the new daily index
d <- merge(z, zoo(,dailySeq))
# fill in missing values using last-observation-carried-forward
d <- na.locf(d)
于 2012-10-18T10:16:55.663 回答