一个MTS对象上的使用申请(或sapply)发送到功能时删除其时间序列的性能。 我应该如何在每个时间序列应用相同的功能(与输入TS和TS输出)在MTS对象,并返回它(优选作为MTS)[我的意思是除了使用for循环]?
例如,假设我写一个返回时间序列(使用STL)的趋势的函数
myfunc <- function(x) {
return(stl(x,"per")$time.series[,2])
}
现在,对样品MTS
z <- ts(matrix(rnorm(90), 30, 3), start=c(1961, 1), frequency=4)
class(z)
只有发送的系列作品正确的时间之一:
myfunc(z[,1]) # works correctly, returns the trend of first series
我的功能是不适合多个时间序列如此:
myfunc(z) # will not work returning the error below
Error in stl(x, "per") : only univariate series are allowed
使用适用于MTS对象发送的每个时间序列的作为载体,不保持其时间序列的属性(TSP):
apply(z,2,myfunc) # will not work returning the error below
Error in stl(x, "per") :
series is not periodic or has less than two periods