Как изменить часовой пояс по умолчанию в R? - PullRequest
47 голосов
/ 16 июня 2011

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

Ответы [ 5 ]

68 голосов
/ 20 июня 2011

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

11 голосов
/ 16 июня 2011

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

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

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

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

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

5 голосов
/ 17 июня 2015

Я нашел ответ @ Dirk очень полезным для Ubuntu, поэтому я решил расширить его.

Начиная с help(Startup) мы видим, что переменные окружения задаются файлом Renviron.site:

Если в командной строке не указано --no-environment, 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"

или аналогичный.

0 голосов
/ 16 июня 2016

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...