Wykonuję analizę opadów godzinowych na pliku, który jest zdezorganizowany. Jednak udało mi się go oczyścić i przechowywać je w dataframe (zwany CA1), która ma postać, jak następuje:Szeregi czasowe i STL w R: dozwolone są tylko jednowymiarowe serie z błędami
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
przypadku H0 przez H23 reprezentują 24 godzin dziennie (wiersz)
Stosując tylko CA1 (The dataframe powyżej), że ma co dzień (rzędu) 24 punktów i przeniesienia go w pionie i łączenia pozostałych dni (wiersze) jedną zmienną, którą nazywamy 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
pomocą zmiennej DAT1 , Wprowadzam go jako argument, aby uzyskać dane szeregów czasowych:
> rainCA1 <- ts(dat1, start = c(1900+as.POSIXlt(CA1[1,5])$year, 1+as.POSIXlt(CA1[1,5])$mon),
frequency = 24)
kilka rzeczy Uwaga:
>dim(CA1)
[1] 5636 31
>length(dat1)
[1] 135264
Zatem 5636 * 24 (suma punktów danych [24] w rzędzie) = 135264 sumę punktów. Długość (rainCA1) zgadza się z powyższymi punktami. Jednakże, jeśli położyć kres w funkcji ts, jak
>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)
uzyskać całkowitą długość 1134 punktów, gdzie brakuje mi dużo danych. Zakładam, że wynika to z tego, że daty nie są następujące po sobie, a jako argument za punktem wyjścia stosuję tylko miesiąc i rok.
Ustawicznego, w co myślę jest poprawna ścieżka, używając pierwszego ts obliczenia bez argumentu końcowego, I dostarczyć go jako wkład do STL:
>rainCA1_2 <-stl(rainCA1, "periodic")
Niestety, pojawia się błąd:
Error in stl(rainCA1, "periodic") : only univariate series are allowed
Którego nie rozumiem i jak do tego zabrać. Jeśli jednak powrócę do funkcji ts i podam argument końcowy, stl działa poprawnie bez żadnych błędów.
Mam zbadane na wielu forach, ale nikt (lub do mojego zrozumienia) nie zapewnia dobrze rozwiązania, aby uzyskać atrybuty danych godzinowych danych. Jeśli ktokolwiek mógłby mi pomóc, bardzo to doceniam. Dziękuję Ci!