2017-09-19 7 views
0

I Avoir une trame de données pour un mois (1er AVRIL - 30 AVRIL). Les données collectées par heure. Je veux créer un graphique de séries chronologiques en utilisant plotNA.distribution. Le problème est, comment définir mes noms col (en-tête) comme une horloge (00.00 - 23.00)?Utiliser l'en-tête comme format de date (horloge) dans R

  0 1 2 3 4 5 6 7 

01/04/2017 24,4 26,4 28,1 29,6 30,5 31 NA 30,7

02/04/2017 25,8 27,3 29 , 2 30,1 31 32,2 32 31,4

03/04/2017 26,2 27,5 29 30,2 31,1 31,7 31,6 30,2

04/04/2017 24,8 25,8 27,8 29,3 30,8 31,6 NA 29,4

05/04/2017 25,6 27,2 29,3 30,3 30,2 31 , 5 31,7 31,7

06/04/2017 25,7 25,9 26,6 28 28,4 27 28,7 30

Désolé si ma question n'a pas claire. Oui, les noms (df) fonctionnent. Mais mon df ne peut pas être comploté par plotNA.distribution. Il dit, mes données devraient univariate données. Je veux juste mes données comme les données tsAirgap. Dans les données tsAirgap, le nom de la classe est year, alors le nom de la colonne est month. Dans ce cas, je veux que mon nom de famille soit du 1er avril au 30 avril, puis mon nom de col est df 00.00-23.00.

 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 

1949 112 118 132 129 NA 135 148 148 NA 119 104 118 

1950 115 126 141 135 125 149 170 170 NA 133 NA 140 

1951 145 150 178 163 172 178 199 199 184 162 146 166 

1952 171 180 193 181 183 218 230 242 209 191 172 194 

1953 196 196 236 235 229 243 264 272 237 211 180 201 

1954 204 188 235 227 234 NA 302 293 259 229 203 229 

1955 242 233 267 269 270 315 364 347 312 274 237 278 

1956 284 277 NA NA NA 374 413 405 355 306 271 306 

1957 315 301 356 348 355 NA 465 467 404 347 NA 336 

1958 340 318 NA 348 363 435 491 505 404 359 310 337 

1959 360 342 406 396 420 472 548 559 463 407 362 NA 

1960 417 391 419 461 NA 535 622 606 508 461 390 432 

J'apprécie toute réponse écrire dans mon post. Merci beaucoup. Désolé pour mon anglais

Répondre

1

Pas si clair de votre question. Si j'ai bien compris, vous souhaitez définir les noms des colonnes de votre bloc de données par heure.

Vous pouvez utiliser names pour définir les noms pour votre trame de données df comme celui-ci (Par exemple, si vous avez 5 colonnes):

names(df) <- c("13.30", "14.30", "16.00", "17.00", "18.00") 
1

La fonction plotNA.distribution semble nécessiter un seul vecteur ou un objet de classe ts , qui est ce que tsAirGap est.

Il y a d'informations sur la façon de créer un objet ts ici: https://stat.ethz.ch/R-manual/R-devel/library/stats/html/ts.html

Vous avez également le choix de remodeler votre data.frame de son format « large » en cours, à un format « long » et intrigue les valeurs ..

library(tidyr) 
YourDataNew <- gather(YourData,key = "hour",value = "data",Jan:Dec) %>% arrange(day) 
YourDataNew$data <- as.numeric(YourDataNew$data) 
library(imputeTS) 
plotNA.distribution(YourDataNew$data) 

..will fonctionnent sans erreur, mais je ne sais pas comment définir les tiques-étiquettes appropriées dans la parcelle résultante.

Dans tous les cas, si vous travaillez beaucoup avec des données de séries chronologiques, il est probablement préférable d'apprendre à créer et à utiliser des objets ts.