Подтвердить что ты не робот

Как изменить часовой пояс по умолчанию в R?

Я работаю с временными рядами по R. Все мои временные ряды определены в часовом поясе UTC, но если я печатаю дату, это всегда делается в часовом поясе CET/CEST. Вы знаете, как я могу изменить этот параметр по умолчанию?

4b9b3361

Ответ 1

Другой способ сделать это, не меняя время всего компьютера, - это использовать команду setenv следующим образом: Sys.setenv(TZ='GMT')

Ответ 2

См. эту хорошую статью об изменении часового пояса в 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"

Ответ 3

Какая операционная система?

В общем, см. help(Startup), поскольку вы можете установить значения через .Renviron и его вариант на сайте.

Но вы, вероятно, должны установить это для своей машины в целом, которая под Linux может изменить файл /etc/timezone, а в Windows вы должны установить общесистемную переменную среды TZ.

Наконец, если ваше форматированное отображение дат и времени показывает CET/CEST, это может быть уже установлено как системное значение по умолчанию, и на самом деле ваш вопрос заключается в том, как правильно установить UTC в ваших R-объектах.

Ответ 4

Я нашел, что @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

- Замена всего часового пояса ОС - кувалда для того, что в основном предназначено для изменения алгоритмов программирования. -Замена стартового файла не предоставляется для обмена кодом через git.

Есть ли другой способ сделать это в script времени выполнения для сеанса R?