R 为什么即使在将数据集转换为ts文件进行时间序列分析后,我仍会收到此错误消息?
我打算对我的数据集执行时间序列分析。我已从R 为什么即使在将数据集转换为ts文件进行时间序列分析后,我仍会收到此错误消息?,r,dataframe,time-series,R,Dataframe,Time Series,我打算对我的数据集执行时间序列分析。我已从csv文件导入数据(2015年1月至2017年12月的月度数据),我在RStudio中的代码显示如下: library(timetk) library(tidyquant) library(timeSeries) library(tseries) library(forecast) mydata1 <- read.csv("mydata.csv", as.is=TRUE, header = TRUE) mydata1 da
csv
文件导入数据(2015年1月至2017年12月的月度数据),我在RStudio
中的代码显示如下:
library(timetk)
library(tidyquant)
library(timeSeries)
library(tseries)
library(forecast)
mydata1 <- read.csv("mydata.csv", as.is=TRUE, header = TRUE)
mydata1
date pkgrev
1 1/1/2015 39103770
2 2/1/2015 27652952
3 3/1/2015 30324308
4 4/1/2015 35347040
5 5/1/2015 31093119
6 6/1/2015 20670477
7 7/1/2015 24841570
mydata2 <- mydata1 %>%
mutate(date = mdy(date))
mydata2
date pkgrev
1 2015-01-01 39103770
2 2015-02-01 27652952
3 2015-03-01 30324308
4 2015-04-01 35347040
5 2015-05-01 31093119
6 2015-06-01 20670477
7 2015-07-01 24841570
class(mydata2)
[1] "data.frame"
现在,运行以下代码会给我一个错误:
stlRes <- stl(mydata2_ts, s.window = "periodic")
Error in stl(mydata2_ts, s.window = "periodic") :
only univariate series are allowed
stlRes出现此错误的原因是,您试图将包含两个变量(date+pkgrev)的数据集输入到STL的参数中,该参数仅将单变量时间序列作为正确的参数
要解决此问题,可以创建不带日期变量的单变量ts对象。在您的情况下,您需要在代码中使用mydata2$pkgrev
(或者mydata2[“pkgrev”]
在mydata2
转换为数据帧后使用mydata2
)而不是mydata2
,如果我正确理解您的注释,我的代码应该如下所示:mydata2很棒!谢谢!
class(mydata2_ts)
[1] "mts" "ts" "matrix"
stlRes <- stl(mydata2_ts, s.window = "periodic")
Error in stl(mydata2_ts, s.window = "periodic") :
only univariate series are allowed
mydata3 = cbind(as.Date(time(mydata2_ts)), mydata2_ts)
mydata3 = as.data.frame(mydata3)