我在一个文件,是杂乱无章每小时的降水量做分析。 不过,我设法把它清理干净,并将其存储在数据框(称为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(以上数据帧),I取每一天(行)的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)
有几件事情需要注意:
>dim(CA1)
[1] 5636 31
>length(dat1)
[1] 135264
因此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)
我拿点,我在哪里丢失了大量数据的1134总长度。 我假定这是由于不是连续的日期,因为我只适用月份和年份作为论据的起点。
接着,在我认为是正确的路径,使用第一TS计算没有结束的说法,我提供它作为STL输入:
>rainCA1_2 <-stl(rainCA1, "periodic")
不幸的是,我得到一个错误:
Error in stl(rainCA1, "periodic") : only univariate series are allowed
我不理解或如何去做。 但是,如果我回到TS功能,并提供最终的说法,STL没有任何错误工作正常。
我已经研究了很多论坛,但没有一个人(或我的理解)提供了一个良好的解决方案,以获得每小时数据的数据属性。 如果有人可以帮助我,我将非常感激。 谢谢!