投稿

12月, 2014の投稿を表示しています

Rで文字列を日付時刻型に変換する

日付時刻と観測値が対応付いたデータってありますよね。例えば、原子力規制委員会が公開している 放射線モニタリング情報 だと下記のようなCSV形式で、測定時刻と測定値が対応付いています。    V5 , V6   2014 / 12 / 26 23 : 50 , 0.033   2014 / 12 / 26 23 : 40 , 0.034   2014 / 12 / 26 23 : 30 , 0.033   ................ , ..... こういうデータを見ると、V5を横軸、V6を縦軸にして時系列グラフを描きたくなりますよね。でも、V5が文字列型で読み込まれていると、そのままplotのx軸に指定してもうまくいきません。 日付や時刻を表現する型に変換してやる必要があります。 上記のような書式(日付がスラッシュ、時刻がコロン)ならば、POSIXlt関数に引数で渡すだけで、簡単に変換することができます。   > as.POSIXlt("2014/12/26 23:50")   [1] "2014-12-26 23:50:00 JST" まとめて処理するなら、↓こんな感じでしょうか。   d$日付時刻 <- as.POSIXlt ( d$V5 ) 文字列が標準の書式に従っていれば、上記のように簡単です。 では、文字列が独自の書式で書かれている場合はどうでしょうか。例えば、日付時刻の情報が「2014年12月27日 00時00分」のような書式で入っているとします。このような場合は、strptimeを使うと便利です。   > strptime("2014年12月27日 00時00分", "%Y年%m月%d日 %H時%M分")   [1] "2014-12-27 JST" %Y: 4桁の西暦 %m: 2桁の月 %d: 2桁の日 %H: 2桁の時 %M:  2桁の分 となっているので、それぞれの要素が文字列のどこに登場しているかを第2引数で指定しているわけですね。 「パーセントほにゃらら」とし