の続きです。前回はデータをR言語に読込んだところで終わりました。今回は、台風の発生数と上陸数のデータのNAを0に変換します。
R言語でNAを0に変換するには、is.na関数を使います。
vector <- c(1, 2, NA, 4, NA, 5)
というベクトル、vectorがあったら、
vector[is.na(vector)] <- 0
とすればいいはずです。
早速やってみます。
うまくできました!
この作業をすべての列で実行すればいいですが、あと23回もありますから、関数を作って一括してNAを0に変換しましょう。
まず、ベクトルの中のNAを0に変換する関数を作ります。
function関数で関数を作りました。それでは、hasseiのM2で確かめてみます。
あれ?ダメですね。。どこが悪かったのかな?
これでどうでしょうか?ベクトルを出すように1行追加しました。やってみます。
やった!うまくいきました。最後にRのコンソールに結果を出力するようにしないといけないのですね。
こうして関数を作成したので、apply関数で全部の列に適用します。
うまくNAを0に変換できました!zerotwo関数は全部の結果を出力してしまうので、すこし変更しましょう。
最後の出力のときに、head関数ではじめの6つのデータしか出さないようにしました。
それでは、jourikuのデータフレームで実行しましょう。
うまくできました。
こうして、NAを0に変換したので、summary関数で台風の発生数と上陸数のデータの平均値などを見てみましょう。
あれれ!? NAがあります。。。あ!zeroNAで処理した結果を改めてなにか別のデータフレームに保存しないといけなかったのですね。
もう一度やります。
すばらしい! 台風の発生は年間では21から28回ですね。ひと月に6回というのが最大です。
上陸数も見てみます。
とここまでやって、いま、間違いをおかしていることに気が付きました。zeroNA関数ははじめの6個のデータしか取得しない関数でした。
関数はzerotwo関数を使えばよかったですね。
zerotwo関数で処理したデータフレーム、HASS(発生数)JOUR(上陸数)を作成しました。
発生数を見ると、年間で少ないときは14個、多いときは39個も台風が発生しています。
月間では10個が最多です。
上陸数も見てみましょう。
上陸は年間で10回が最多です。月間では4回が最多ですね。
ということで今回は以上です。