cucumber flesh

Rを中心としたデータ分析・統計解析らへんの話題をしていくだけ

macOS (High Sierra)で利用しているRからタイムゾーンの警告がでる件とその対策

タイトルの通り、macOSを使っている皆さん、こんな警告を見たことはないだろうか。

lubridate::today()
# [1] "2017-11-30"
Warning message:
In as.POSIXlt.POSIXct(x) :
  unknown timezone 'zone/tz/2017c.1.0/zoneinfo/Asia/Tokyo'

なにやらタイムゾーンで怒られている。これはセッション中に日付・時間のオブジェクトを扱う処理を実行すると出る警告だが、よくわからない理由で怒られるとビビる。

これはOSとR間でのバグらしく、すでに報告が上がっている。

17355 – unknown timezone when printing (on OSX High Sierra)

で、この問題は次期バージョンとなるR 3.4.3で修正されるらしい。ちなみにR 3.4.3は今日リリースされた(というのを先ほどメーリングリストで知った)ので、バイナリも近いうちにダウンロード可能になるだろう。安心安心。

A workaround has been added for the changes in location of time-zone files in macOS 10.13 'High Sierra' and again in 10.13.1, so the default time zone is deduced correctly from the system setting when R is configured with --with-internal-tzcode (the default on macOS).

しばらくバージョンをあげる予定がなかったり、いますぐにこの警告を消したい時は、ここにある通り「裏技」を使う。

Sys.setenv("TZ" = "Asia/Tokyo")

安心安心。