Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 不带NAs的cbind()时间序列_R_Time Series - Fatal编程技术网

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