r语言 - 时间序列 stl 错误



我有一个这样的代码:

rawdata=as.numeric(rawdata)
salesdata_bfr=rawdata[3:(maxcolnum-12)]
print(length(salesdata_bfr))
salesdata_ts=ts(salesdata_bfr, frequency = 12)
salesdata_stl=stl(salesdata_ts,s.window="periodic")

maxcolnum等于 38,print(length(salesdata_bfr))打印 24。但是我得到错误

Error in stl(salesdata_ts, s.window = "periodic") : 
 series is not periodic or has less than two periods

但我确实有一个正好两个周期的向量,我以 ts() 指定了频率。为什么它不起作用?

您的代码有问题。以下工作顺利:

set.seed(42)
maxcolnum <- 38
rawdata <- rnorm(maxcolnum)
salesdata_bfr <- rawdata[3:(maxcolnum-11)]
length(salesdata_bfr)
# [1] 25 <-- it should be 25, not 24
salesdata_ts <- ts(salesdata_bfr, frequency = 12)
salesdata_stl <- stl(salesdata_ts,s.window="periodic")

最新更新