#轉(zhuǎn)成時間序列類型
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
#規(guī)則的時間序列,數(shù)據(jù)在規(guī)定的時間間隔內(nèi)出現(xiàn)
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
#判斷是否為規(guī)則時間序列
is.regular(x)
#排序
zoo()和xts()會強制變換為正序(按照時間名稱)
timeSeries不會強制排序;其結(jié)果可以根據(jù)sort函數(shù)排序,也可以采用rev()函數(shù)進行逆序;參數(shù)recordIDs,可以給每個元素(行)標記一個ID,從而可以找回原來的順序
#預設(shè)的時間有重復的時間點時
zoo會報錯
xts按照升序排列
timeSeries把重復部分放置在尾部;
#行合并和列合并
#都是按照列名進行合并,列名不同的部分用NA代替
cbind()
rbind()
merge() 列合并
#取子集
xts()默認將向量做成了矩陣;其他與常規(guī)向量或者矩陣沒有差別
#缺失值處理
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)? ???#末次觀測值結(jié)轉(zhuǎn)法
na.trim(x, sides=”left” )??#去掉最后一個缺失值
#對timeSreies數(shù)據(jù)
na.omit(x, “ir” )??#去掉首末位置的缺失值
na.omit(x, “iz” )??#用替換首末位置的缺失值
na.omit(x, “ie” )??#對首末位置的缺失值進行插值
na.omit(x, method=“ie”, interp= c(“before”,”linear”,”after”) ) #可以選擇插值方法,before末次觀測值法,after下次觀測結(jié)轉(zhuǎn)法
as.contiguous(x)??#返回x中最長的連續(xù)無缺失值的序列片段,如果有兩個等長的序列片段,則返回第一個。
#時間序列數(shù)據(jù)的顯示
#zoo和xts都只能按照原來的格式顯示,timeSeries可以設(shè)置顯示格式
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”)








暫無數(shù)據(jù)