初学,不知道怎么弄。
我要用的数据缺失,比如:
4/5/2013 235
4/6/2013 263
4/10/2013 345
有没有方法可以把4/7/2013 ,4/8/2013, 4/9/2013 时间补全,并把数据按某种算法补全。
R语言怎样补全时间序列数据?
回复 第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
比如测量屋子里几个点的甲醛值,再用这个包,可以平滑画出整个屋子平面的甲醛分布。