さんごー日記。

映画や本やゲームの感想をゆるく記録したり、プログラミングの勉強をゆるく記録するゆるい日記です。

RのstrptimeがNAを返す場合の対処法

Rのstrptimeが上手く動かずにNAを返してしまう事がある。

WindowsにRをインストールして動かすと以下のパターンで上手くいかなかった。

> conv <- strptime("04 Oct 2002 11:36:16", "%d %B %Y %I:%M:%S", tz="")
> print(conv)
[1] NA

 

以下のパターンだと上手くいってた。月を文字から数字にして、パターンに%Bから%mに変えたってことね。

> conv <- strptime("04 10 2002 11:36:16", "%d %m %Y %H:%M:%S")
> print(conv)
[1] "2002-10-04 11:36:16 JST"

 

月の文字列を使うパターンで引っかかってしまうらしい。

これを解決するには以下のコードを実行する。

> Sys.setlocale(category="LC_TIME","C")

 

するとうまくいった。

> conv <- strptime("04 Oct 2002 11:36:16", "%d %B %Y %I:%M:%S", tz="")
> print(conv)
[1] "2002-10-04 11:36:16 JST"

 

Sys.setlocale(category="LC_TIME","C")の意味はよく分かってない。

これで「入門機械学習」のコードも動く。やっと読み進められる。 

 

おわり。

 

 

Rクックブック

Rクックブック