que je fais l'analyse des précipitations par heure sur un fichier qui est désorganisé. Cependant, j'ai réussi à le nettoyer et le stocker dans une trame de données (appelé CA1) qui prend la forme comme suit:séries chronologiques et stl en R: Erreur seule série univariée sont autorisés
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
Lorsque H0 par H23 représentent les 24 heures par jour (ligne)
aide seulement CA1 (la trame de données ci-dessus), je prendre chaque jour (ligne) de 24 points et transposer verticalement et concaténer les jours restants (lignes) à une variable, que j'appelle 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
Utilisation de la variable DAT1 , Je l'ai entré comme argument pour obtenir une série de données de temps:
> rainCA1 <- ts(dat1, start = c(1900+as.POSIXlt(CA1[1,5])$year, 1+as.POSIXlt(CA1[1,5])$mon),
frequency = 24)
Quelques choses à noter:
>dim(CA1)
[1] 5636 31
>length(dat1)
[1] 135264
Ainsi 5636 * 24 (points de données au total [24] par ligne) = 135264 points au total. La longueur (rainCA1) est d'accord avec les points ci-dessus. Cependant, si je mets un terme dans la fonction ts, tels que
>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)
Je reçois 1134 longueur totale de points, où je me manque beaucoup de données. Je suppose que cela est dû au fait que les dates ne sont pas consécutives et que je n'applique le mois et l'année que comme argument pour le point de départ.
continue, dans ce que je pense est le bon chemin, en utilisant le premier calcul ts sans l'argument final, je fournir comme une entrée pour stl:
>rainCA1_2 <-stl(rainCA1, "periodic")
Malheureusement, je reçois une erreur:
Error in stl(rainCA1, "periodic") : only univariate series are allowed
ce que je ne comprends pas ou comment s'y prendre. Cependant, si je retourne à la fonction ts et fournissons l'argument final, stl fonctionne correctement sans erreur.
J'ai fait des recherches dans beaucoup de forums, mais pas un (ou à ma connaissance) fournit une solution de puits pour obtenir les attributs de données des données horaires. Si quelqu'un peut m'aider, je l'apprécierai hautement. Je vous remercie!