• R语言
  • R语言怎样补全时间序列数据?

初学,不知道怎么弄。

我要用的数据缺失,比如:

4/5/2013 235

4/6/2013 263

4/10/2013 345

有没有方法可以把4/7/2013 ,4/8/2013, 4/9/2013 时间补全,并把数据按某种算法补全。

回复 第1楼 的 fountainer:

<br />
> require(xts)<br />
> x<-c(235,263,345)<br />
> dt_x<-c('2013-04-05','2013-04-06','2013-04-10')<br />
> xse<-xts(x,as.Date(dt))<br />
> y<-c(NA,NA,NA)<br />
> dt_y<-c('2013-04-07','2013-04-08','2013-04-09')<br />
> yse<-xts(y,as.Date(dt_y))<br />
> nse<-rbind.xts(xse,yse)<br />
警告信息:<br />
In rbind.xts(xse, yse) : mismatched types: converting objects to numeric<br />
> nse<br />
           [,1]<br />
2013-04-05  235<br />
2013-04-06  263<br />
2013-04-07   NA<br />
2013-04-08   NA<br />
2013-04-09   NA<br />
2013-04-10  345<br />
> nse<-na.locf(nse)<br />
> nse<br />
           [,1]<br />
2013-04-05  235<br />
2013-04-06  263<br />
2013-04-07  263<br />
2013-04-08  263<br />
2013-04-09  263<br />
2013-04-10  345<br />
</p>

贴了这么多无用代码,其实我想回答的就是

xts.rbind 和 na.locf

我还可以再啰嗦两句:

na.approx(x) #对缺失值进行线性插值

na.spline(x) #对缺失值进行样条插值

na.locf(x) #末次观测值结转法

我再补充一个,针对平面的插值包:

akima

比如测量屋子里几个点的甲醛值,再用这个包,可以平滑画出整个屋子平面的甲醛分布。