Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.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 为什么即使在将数据集转换为ts文件进行时间序列分析后,我仍会收到此错误消息?_R_Dataframe_Time Series - Fatal编程技术网

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)