整理されていないファイルで毎時降水量の分析を行っています。しかし、私はそれをクリーンアップして、次のような形式をとるデータフレーム (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 は 1 日あたり 24 時間を表します (行)
CA1 (上記のデータフレーム) のみを使用して、24 ポイントの各日 (行) を取得し、それを垂直方向に転置し、残りの日 (行) を 1 つの変数に連結します。これを 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 関数に戻って end 引数を指定すると、stl はエラーなしで正常に動作します。
私は多くのフォーラムで調査しましたが、誰も (または私の理解では) 毎時データのデータ属性を取得するための適切なソリューションを提供していません。誰かが私を助けることができれば、私はそれを高く評価します。ありがとうございました!