R の openair パッケージで calendarPlot 関数を使用しようとしています。パッケージに付属の mydata データフレームをロードして次のコードを実行すると、正常に動作します。
calendarPlot(mydata, pollutant = "co", year = 2003)
mydata データフレームは次のようになります。
'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 ...
次のような独自のデータフレーム R1_Temp_cut があります。
'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 ...
データに対して同じコードを実行すると、次のエラーが発生します。
> 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
mydata の日付形式が POSIXt で、R1_Temp_cut が POSIXct であることに気付きました。フォーマットを POSIXct に変更しましたが、それでも問題なく動作しました。ヘルプ ファイルには、日付形式は POSIXct である必要があると記載されています。
データフレーム 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
R1_Temp_cut データフレームでスクリプトを実行する方法についてのアイデアは大歓迎です。
ありがとう、クレイグ。