R 不带NAs的cbind()时间序列
我观察到,对于重叠时间序列上的许多运算符,结果只针对重叠部分给出,这很好:R 不带NAs的cbind()时间序列,r,time-series,R,Time Series,我观察到,对于重叠时间序列上的许多运算符,结果只针对重叠部分给出,这很好: > (ts1 <- ts(1:5, start=1, freq=3)) Time Series: Start = c(1, 1) End = c(2, 2) Frequency = 3 [1] 1 2 3 4 5 > (ts2 <- ts((7:3)^2, start=2, freq=3)) Time Series: Start = c(2, 1) End = c(3, 2) Frequ
> (ts1 <- ts(1:5, start=1, freq=3))
Time Series:
Start = c(1, 1)
End = c(2, 2)
Frequency = 3
[1] 1 2 3 4 5
> (ts2 <- ts((7:3)^2, start=2, freq=3))
Time Series:
Start = c(2, 1)
End = c(3, 2)
Frequency = 3
[1] 49 36 25 16 9
> ts1 + ts2
Time Series:
Start = c(2, 1)
End = c(2, 2)
Frequency = 3
[1] 53 41
有没有一种方法可以执行cbind()
而不创建包含NA
的行?或者,如果不是,那么用NA
s来提取结果并去除行的好方法是什么?订阅并不是一个简单的问题,因为这样它就失去了timeseries的特性:
> mts[complete.cases(mts),]
ts1 ts2
[1,] 4 49
[2,] 5 36
可能是使用了
window()
,但是计算窗口的开始和结束时间似乎有点令人讨厌。欢迎任何建议。为什么不干脆na.忽略结果
> na.omit(cbind(ts1,ts2))
Time Series:
Start = c(2, 1)
End = c(2, 2)
Frequency = 3
ts1 ts2
2.000000 4 49
2.333333 5 36
如果要避免na.ommit
,stats:::cbind.ts
调用stats::::.cbind.ts
,它有一个union
参数。您可以将其设置为FALSE
,并直接调用stats::.cbind.ts
(创建适当的参数后):
但是,na.omit
解决方案似乎更容易一些 太棒了!我不知道na.ommit
可以这样称呼,谢谢。事实上,我也很高兴看到stats:::.cbind.ts
版本,因为对于大型时间序列,执行na.ommit
步骤可能需要一些时间。
> na.omit(cbind(ts1,ts2))
Time Series:
Start = c(2, 1)
End = c(2, 2)
Frequency = 3
ts1 ts2
2.000000 4 49
2.333333 5 36
> stats:::.cbind.ts(list(ts1,ts2),list('ts1','ts2'),union=FALSE)
Time Series:
Start = c(2, 1)
End = c(2, 2)
Frequency = 3
ts1 ts2
2.000000 4 49
2.333333 5 36