!! 年月日や時刻を取り扱う ! 日付の型 Rでは年月日を定義する、Date()オブジェクトと、年月日時分秒を定義するPOSIX()オブジェクトがある。 オブジェクトの内容については、各ページを参照。 ! ロケール ここでは、日付を取り扱う際に必要な「ロケール」設定について記しておく。 ロケールとは、システム固有のデータの持ち方を、システム使用者の地域や言語などの仕様にして扱う仕組みと理解すればよい。 例えば、日付については、 米国: "March 25, 2016" "Mar 25, 16" 日本: 2016年3月25日 2016/03/25 平成28年3月25日 この他、通貨記号においては、日本は¥が標準だが、米億では$が標準で、標記も日本の場合は、円・銭だが、米国ではしかも$XX.XXとなることが多く、標記の違いがある。しかしシステムとしてはすべて同じデータとして扱わねば不都合が生ずる。 このため、特に明示しない限り使っているシステムの標準的に使われる設定を定義するのがロケールである。 > Sys.getlocale() # システムのロケールを表示する [1] "LC_COLLATE=Japanese_Japan.932;LC_CTYPE=Japanese_Japan.932;LC_MONETARY=Japanese_Japan.932;LC_NUMERIC=C;LC_TIME=Japanese_Japan.932" 日付の表示に関わるロケールは、"LC_TIME"であり、Japanese_Japan.932は、PCでWindowsOSを使っている場合に使われる。 ! ロケールの違いによる標記の違い > Sys.getlocale() [1] "LC_COLLATE=Japanese_Japan.932;LC_CTYPE=Japanese_Japan.932;LC_MONETARY=Japanese_Japan.932;LC_NUMERIC=C;LC_TIME=Japanese_Japan.932" > format(Sys.time(), "%A %B %D %Y %H:%M:%S") [1] "月曜日 10月 10/31/16 2016 10:48:18" > Sys.setlocale("LC_TIME","C") [1] "C" > format(Sys.time(), "%A %B %D %Y %H:%M:%S") [1] "Monday October 10/31/16 2016 10:50:13"