#转成时间序列类型
x = rnorm(2)
charvec = c(“2010-01-01”,”2010-02-01”)
zoo(x,as.Date(charvec)) #包zoo
xts(x, as.Date(charvec)) #包xts
timeSeries(x,as.Date(charvec)) #包timeSeries
#规则的时间序列,数据在规定的时间间隔内出现
tm = ts(x,start = c(2010,1), frequency=12 ) #12为按月份,4为按季度,1为按年度
zm = zooreg(x,start = c(2010,1), frequency=12 ) #包zoo
xm = as.xts(tm) #包xts
sm = as.timeSeries(tm) #包timeSeries
#判断是否为规则时间序列
is.regular(x)
#排序
zoo()和xts()会强制变换为正序(按照时间名称)
timeSeries不会强制排序;其结果可以根据sort函数排序,也可以采用rev()函数进行逆序;参数recordIDs,可以给每个元素(行)标记一个ID,从而可以找回原来的顺序
#预设的时间有重复的时间点时
zoo会报错
xts按照升序排列
timeSeries把重复部分放置在尾部;
#行合并和列合并
#都是按照列名进行合并,列名不同的部分用NA代替
cbind()
rbind()
merge() 列合并
#取子集
xts()默认将向量做成了矩阵;其他与常规向量或者矩阵没有差别
#缺失值处理
na.omit(x)
x[is.na(x)] = 0
x[is.na(x)] = mean(x,na.rm=TRUE)
x[is.na(x)] = median(x,na.rm=TRUE)
na.approx(x) #对缺失值进行线性插值
na.spline(x) #对缺失值进行样条插值
na.locf(x) #末次观测值结转法
na.trim(x, sides=”left” ) #去掉最后一个缺失值
#对timeSreies数据
na.omit(x, “ir” ) #去掉首末位置的缺失值
na.omit(x, “iz” ) #用替换首末位置的缺失值
na.omit(x, “ie” ) #对首末位置的缺失值进行插值
na.omit(x, method=“ie”, interp= c(“before”,”linear”,”after”) ) #可以选择插值方法,before末次观测值法,after下次观测结转法
as.contiguous(x) #返回x中最长的连续无缺失值的序列片段,如果有两个等长的序列片段,则返回第一个。
#时间序列数据的显示
#zoo和xts都只能按照原来的格式显示,timeSeries可以设置显示格式
print(x, format= “%m/%d/%y %H:%M”) #%m表示月,%d表示天,%y表示年,%H表示时,%M表示分钟,%A表示星期,%j表示天的序号
#timeSeries也可以按照ts的格式显示
print(x, style=”ts”)
print(x, style=”ts”, by=”quarter”)
暂无数据