2016-02-25 3 views
0

Je tente d'utiliser la fonction calendarPlot dans le paquet Openair R. Si je charge le dataframe monTableau qui vient avec le package et exécutez le code suivant il fonctionne très bien:Openair: calendarPlot ne pas lire dataframe

calendarPlot(mydata, pollutant = "co", year = 2003) 

dataframe mydata ressemble à ceci:

'data.frame': 65533 obs. of 10 variables: 
$ date: POSIXt, format: "1998-01-01 00:00:00" "1998-01-01 01:00:00" "1998- 01-01 02:00:00" "1998-01-01 03:00:00" ... 
$ ws : num 0.6 2.16 2.76 2.16 2.4 3 3 3 3.36 3.96 ... 
$ wd : int 280 230 190 170 180 190 140 170 170 170 ... 
$ nox : int 285 NA NA 493 468 264 171 195 137 113 ... 
$ no2 : int 39 NA NA 52 78 42 38 51 42 39 ... 
$ o3 : int 1 NA 3 3 2 0 0 0 1 2 ... 
$ pm10: int 29 37 34 35 34 16 11 12 12 12 ... 
$ so2 : num 4.72 NA 6.83 7.66 8.07 ... 
$ co : num 3.37 NA 9.6 10.22 8.91 ... 
$ pm25: int NA NA NA NA NA NA NA NA NA NA ... 

J'ai mon propre dataframe, R1_Temp_cut, qui ressemble à ceci:

'data.frame': 722880 obs. of 3 variables: 
$ DateTime: POSIXct, format: "2013-10-01 00:01:00" "2013-10-01 00:02:00"  "2013-10-01 00:03:00" "2013-10-01 00:04:00" ... 
$ Air.Temp: num 17.5 17.4 17.4 17.7 17.7 17.7 17.7 17.6 17.6 17 ... 
$ AirTemp : num 17.5 17.4 17.4 17.7 17.7 17.7 17.7 17.6 17.6 17 ... 

Lorsque je lance le même code sur mes données, je reçois les erreurs suivantes:

> calendarPlot(R1_Temp_cut, pollutant = "AirTemp", year = 2014) 
Error in calendarPlot(R1_Temp_cut, pollutant = "AirTemp", year = 2014) : 
    No data to plot - check year chosen 
In addition: Warning message: 
In match(x, table, nomatch = 0L) : NAs introduced by coercion 

je remarquai que le format de date dans mydata était POSIXt et R1_Temp_cut était POSIXct. J'ai changé le format à POSIXct et ça a toujours bien fonctionné. Le fichier d'aide indique que le format de date doit être POSIXct.

Résumé des dataframe R1_Temp_cut:

> summary(R1_Temp_cut) 
    DateTime      Air.Temp  AirTemp  
Min. :2013-10-01 00:01:00 Min. :-4.10 Min. : 0.00 
1st Qu.:2014-02-03 11:46:45 1st Qu.:14.40 1st Qu.:14.40 
Median :2014-06-09 05:15:30 Median :18.20 Median :18.20 
Mean :2014-06-09 07:11:51 Mean :18.57 Mean :18.57 
3rd Qu.:2014-10-13 01:41:15 3rd Qu.:22.00 3rd Qu.:22.00 
Max. :2015-02-15 23:59:00 Max. :99.00 Max. :99.00 

Toutes les idées sur la façon dont je peux obtenir serait grandement apprécié le script à exécuter avec R1_Temp_cut dataframe.

Merci, Craig.

+0

Si l'on compare les deux data.frames, 'mydata' a des dates dans le format' POSIXt', alors que vos dates sont au format 'POSIXct'. Peut-être la source du problème. –

+0

J'ai changé le format de date à POSIXct dans mydata et ça s'est bien passé. str (mesdata) 'data.frame': \t 65533 obs. de 10 variables: $ date: _POSIXct_, format: "1998-01-01 00:00:00" "1998-01-01 01:00:00" "1998-01-01 02:00:00" " 1998-01-01 03:00:00 "... –

Répondre

0

Il s'avère que la fonction calendarPlot doit avoir la colonne 'date' marquée comme date pour que cela fonctionne. Je changé mon nom de la colonne de 'DateTime' à 'date' et il a parfaitement fonctionné:

names(R1_Temp_cut)[1] <- "date" 
calendarPlot(R1_Temp_cut, pollutant = "Air.Temp", year =2014) 

Output from calendarPlot