我需要从数据框创建时间序列。问题是变量没有很好的排序。数据框如下所示
案件日期 15 1/2009 30 3/2010 45 12/2013
我有60个这样的观察。正如您所看到的,数据是随机收集的,从2008年1月开始到2013年12月结束(这些年之间的大部分月份都有许多缺失值(案例))。我的假设是那几个月没有任何案例。那么,我如何将此数据集转换为时间序列?然后,我将尝试对将来可能的案例数做一些预测。
答案 0 :(得分:0)
尝试安装plyr库,
install.packages("plyr")
然后将重复的Date2行加起来:
library(plyr)
mergedData <- ddply(dat, .(Date2), .fun = function(x) {
data.frame(Cases = sum(x$Cases))
})
> head(mergedData)
Date2 Cases
1 2008-01-01 16352
2 2008-11-01 10
3 2009-01-01 23
4 2009-02-01 138
5 2009-04-01 18
6 2009-06-01 3534
答案 1 :(得分:0)
您可以创建单独的时间序列序列并与数据系列合并。这将创建一个完整的时间序列,其缺失值为NA。 如果df是您的数据框,日期为日期列而不是创建新的时间序列ts并合并如下。
ts&lt; - data.frame(Date = seq(as.Date(“2008-01-01”),as.Date(“2013-12-31”),by =“1 month”)) dfwithmisisng&lt; - merge(ts,df,by =“Date”,all = T)