web-dev-qa-db-ja.com

Rのデフォルトのタイムゾーンを変更するにはどうすればよいですか?

Rのデフォルトのタイムゾーンを変更するにはどうすればよいですか?時系列で作業しています。私の時系列はすべてUTCタイムゾーンで定義されていますが、日付を印刷する場合は常にCET/CESTタイムゾーンで行われます。

47
Paul PUGET

コンピューター時間全体を変更せずに行う別の方法は、次のようにsetenvコマンドを使用することです:Sys.setenv(TZ='GMT')

68
Paul PUGET

Rでのタイムゾーンの変更に関する次の良い記事を参照してください。

http://blog.revolutionanalytics.com/2009/06/converting-time-zones.html

まもなく(リンクが今後利用できなくなる場合):

# your time string
pb.txt <- "2009-06-03 19:30"
# convert it to R object for London time zone
pb.date <- as.POSIXct(pb.txt, tz="Europe/London")
# convert it to PDT time zone
format(pb.date, tz="America/Los_Angeles",usetz=TRUE)
[1] "2009-06-03 11:30:00 PDT"

# can be also done for many date at once
d <- c("2009-03-07 12:00", "2009-03-08 12:00", "2009-03-28 12:00", "2009-03-29 12:00", "2009-10-24 12:00", "2009-10-25 12:00", "2009-10-31 12:00", "2009-11-01 12:00")
t1 <- as.POSIXct(d,"America/Los_Angeles")
cbind(US=format(t1),UK=format(t1,tz="Europe/London"))

     US                    UK                   
[1,] "2009-03-07 12:00:00" "2009-03-07 20:00:00"
[2,] "2009-03-08 12:00:00" "2009-03-08 19:00:00"
[3,] "2009-03-28 12:00:00" "2009-03-28 19:00:00"
[4,] "2009-03-29 12:00:00" "2009-03-29 20:00:00"
[5,] "2009-10-24 12:00:00" "2009-10-24 20:00:00"
[6,] "2009-10-25 12:00:00" "2009-10-25 19:00:00"
[7,] "2009-10-31 12:00:00" "2009-10-31 19:00:00"
[8,] "2009-11-01 12:00:00" "2009-11-01 20:00:00"
11
yuk

どのオペレーティングシステムですか?

一般的に、help(Startup)を参照してください。_.Renviron_およびそのサイト全体のバリアントを介して値を設定できます。

しかし、おそらくマシン全体でこれを設定する必要があります。Linuxではファイル_/etc/timezone_が変更される可能性があり、Windowsではシステム全体の環境変数TZを設定します。

最後に、日付と時刻のformatted表示にCET/CESTが表示されている場合、これは既にシステムのデフォルトとして設定されている可能性があり、実際の質問はRオブジェクトでUTC時間を正しく設定する方法です。

7

@Dirkの回答はUbuntuに非常に役立つことがわかったので、それをさらに拡張すると思った。

help(Startup)から、環境変数が_Renviron.site_ファイルによって設定されていることがわかります。

コマンドラインで--no-environが指定されていない限り、Rはサイトおよびユーザーファイルを検索して、環境変数を設定するために処理します。サイトファイルの名前は、環境変数R_ENVIRONが指す名前です。これが設定されていない場合、「R_HOME/etc/Renviron.site」が使用されます

関数R.home()を使用して_R_HOME_へのパスを見つけることができます。

_> R.home()
[1] "/usr/lib/R"
_

したがって、_Renviron.site_ファイルは(私にとっては)_/usr/lib/R/etc/_にあります。

このファイルを開いて、次の行を挿入するだけです:

_TZ="UTC"
_

または類似。

5
Alex

-OSタイムゾーン全体を変更することは、プログラミングアルゴリズムを変更することを基本的に意図しているものの大打撃です。 -スタートアップファイルの変更は、gitを介したコードの共有には役立ちません。

Rセッションのスクリプト実行時にそれを行う別の方法はありますか?

0
jrounds