R中的时间序列和stl:Error仅允许单变量序列

R中的时间序列和stl:Error仅允许单变量序列,r,time-series,decomposition,R,Time Series,Decomposition,我在一个杂乱无章的文件中分析每小时的降水量。但是,我设法将其清理并存储在数据帧(称为CA1)中,其形式如下: Station_ID Guage_Type Lat Long Date Time_Zone Time_Frame H0 H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 H11 H12 H13 H14 H15 H16 H17 H18 H19 H20 H21 H22 H23

我在一个杂乱无章的文件中分析每小时的降水量。但是,我设法将其清理并存储在数据帧(称为CA1)中,其形式如下:

  Station_ID Guage_Type   Lat   Long       Date Time_Zone Time_Frame H0 H1 H2 H3 H4 H5        H6        H7        H8        H9       H10       H11 H12 H13 H14 H15 H16 H17 H18 H19 H20 H21 H22 H23
1    4457700         HI 41.52 124.03 1948-07-01         8        LST  0  0  0  0  0  0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000   0   0   0   0  0  0   0   0   0   0   0   0
2    4457700         HI 41.52 124.03 1948-07-05         8        LST  0  1  1  1  1  1  2.0000000 2.0000000 2.0000000 4.0000000 5.0000000 5.0000000   4   7   1   1   0 0  10  13   5   1   1   3
3    4457700         HI 41.52 124.03 1948-07-06         8        LST  1  1  1  0  1  1 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000   0   0   0   0   0  0   0   0   0   0   0   0
4    4457700         HI 41.52 124.03 1948-07-27         8        LST  3  0  0  0  0  0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000   0   0   0   0   0 0   0   0   0   0   0   0
5    4457700         HI 41.52 124.03 1948-08-01         8        LST  0  0  0  0  0  0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000   0   0   0   0   0 0   0   0   0   0   0   0
6    4457700         HI 41.52 124.03 1948-08-17         8        LST  0  0  0  0  0  0 0.3888889 0.3888889 0.3888889 0.3888889 0.3888889 0.3888889   6   1   0   0   0 0   0   0   0   0   0   0
式中,H0至H23表示每天24小时(世界其他地区)

仅使用CA1(上面的数据框),我取24个点的每一天(行)并垂直转置,然后将剩余的天(行)连接到一个变量,我称之为dat1:

 > dat1[1:48,]
  H0  H1  H2  H3  H4  H5  H6  H7  H8  H9 H10 H11 H12 H13 H14 H15 H16 H17 H18 H19 H20 H21 H22 H23  H0  H1  H2  H3  H4  H5  H6  H7  H8  H9 H10 H11 H12 H13 H14 H15 H16 H17 H18 H19 H20 H21 H22 H23 
   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   1   1   1   1   1   2   2   2   4   5   5   4   7   1   1   0  0  10  13   5   1   1   3 
使用变量dat1,我将其作为参数输入,以获取时间序列数据:

> rainCA1 <- ts(dat1, start = c(1900+as.POSIXlt(CA1[1,5])$year, 1+as.POSIXlt(CA1[1,5])$mon), 
    frequency = 24)
因此,5636*24(每行总数据点[24])等于135264个总点。 长度(rainCA1)与上述各点一致。但是,如果我在ts函数中加上一个结束符,例如

>rainCA1 <- ts(dat1, start = c(1900+as.POSIXlt(CA1[1,5])$year, 1+as.POSIXlt(CA1[1,5])$mon), 
    end = c(1900+as.POSIXlt(CA1[5636,5])$year, 1+as.POSIXlt(CA1[5636,5])$mon),
    frequency = 24)
我不明白,也不知道该怎么做。但是,如果我返回ts函数并提供end参数,stl工作正常,没有任何错误


我已经在很多论坛上进行了研究,但没有人(或据我所知)提供一个很好的解决方案来获取每小时数据的数据属性。如果有人能帮助我,我将不胜感激。谢谢大家!

该错误是数据形状造成的。试着调暗(rainCA1);我怀疑它给出了类似于
[1]135264 1
的东西。
替换
rainCA1我试图用一个非常简单的例子来解释编写方法,以避免在另一个问题中出现此类错误,链接到这里:


我发现的一个解决方案是
时间序列\u var如果在co2或AirPassenger中应用
dim()
,它将返回NULL。 因此,我建议你申请
dim(rainCA1)
>rainCA1 <- ts(dat1, start = c(1900+as.POSIXlt(CA1[1,5])$year, 1+as.POSIXlt(CA1[1,5])$mon), 
    end = c(1900+as.POSIXlt(CA1[5636,5])$year, 1+as.POSIXlt(CA1[5636,5])$mon),
    frequency = 24)
>rainCA1_2 <-stl(rainCA1, "periodic")
Error in stl(rainCA1, "periodic") : only univariate series are allowed