【发布时间】:2016-11-11 09:23:43
【问题描述】:
考虑一个具有多个NA 值的时间序列对象:
x <- seq(10)
x[seq(2,10,2)] <- NA
x <- ts(x)
这是默认索引:
index(x)
[1] 1 2 3 4 5 6 7 8 9 10
如果我使用 na.exclude 删除 NA 值,我会得到一个新索引:
na.exclude(x)
[1] 1 3 5 7 9
attr(,"na.action")
[1] 2 4 6 8 10
attr(,"class")
[1] "exclude"
index(na.exclude(x))
[1] 1 2 3 4 5
如果我尝试na.omit,我只会得到一个错误:
na.omit(x)
Error in na.omit.ts(x) : time series contains internal NAs
> index(na.omit(x))
Error in na.omit.ts(x) : time series contains internal NAs
如果我尝试将index 设置为我需要的值(我希望这应该是删除NAs 的自然结果),我会收到另一个错误:
index(x) <- c(1,3,5,7,9)
Error in UseMethod("index<-") : no applicable method for 'index<-'
applied to an object of class "ts"
有没有直接的方法来删除NA 值,同时保留非NAs 的原始索引?我宁愿不使用xts, zoo 等,因为包stats 中有一些函数只接受ts 对象。
谢谢。
【问题讨论】:
标签: r statistics time-series