r语言 - 每月数据的快捷方式



我正在处理每月收集的数据。在我的数据集中,有几个月没有收集数据,因此,我的数据中没有条目。我以前在每天收集数据时使用bfastts来处理类似的情况,因此我的数据中可能有NA值。如何使用bfastts或其他功能对月度数据做同样的操作?

2006-06-01 2.260121
2006-07-01 2.306800
2006-08-01 2.246624
2006-09-01 1.724565
2006-11-01 1.630561
2007-05-01 2.228918
2007-06-01 2.228918
2007-07-01 2.22891

我希望有12月到3月的NA字段。

问题没有指定需要哪类对象,但这里有三种。zoo支持不规则间隔索引,因此它不需要插入NA's,但它不需要,并且从zoo转换到ts会自动插入NA's。将ts对象再次转换回zoo或转换为数据帧以获得带有NA的zoo或数据帧对象。

zoo和数据帧对象使用yearmon类作为索引,该索引内部将年/月表示为year + fraction,其中fraction为0,1/12,…1月,2月,…,并以有意义的形式显示。作为。Date可用于将yearmon对象转换为Date对象,尽管在这种情况下,yearmon可能更有意义,因为它直接表示年和月,而不表示日。

如果你想从另一个方向去除NA,使用na.omit(z_na)na.omit(DF_na)

library(zoo)
# zoo object - no NA's
z <- read.zoo(DF, FUN = as.yearmon)
# ts object with NA's
tt <- as.ts(z)
# zoo object with NA's
z_na <- as.zoo(tt)
# data.frame with NA's
DF_na <- fortify.zoo(tt)

注意

Lines <- "2006-06-01 2.260121
2006-07-01 2.306800
2006-08-01 2.246624
2006-09-01 1.724565
2006-11-01 1.630561
2007-05-01 2.228918
2007-06-01 2.228918
2007-07-01 2.22891"
DF <- read.table(text = Lines)

相关内容

最新更新