Jak zmienić domyślną strefę czasową w R?

Jak Mogę zmienić domyślną strefę czasową w R? Pracuję z szeregami czasowymi. Wszystkie moje serie czasowe są zdefiniowane w strefie czasowej UTC, ale jeśli wydrukuję datę, zawsze odbywa się to w strefie czasowej CET/CEST.

Author: smci, 2011-06-16

5 answers

Innym sposobem, aby to zrobić, bez zmiany całego czasu komputera jest użycie polecenia setenv w następujący sposób: Sys.setenv(TZ='GMT')

 55
Author: Paul PUGET,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-20 07:31:48

Zobacz ten dobry artykuł o zmianie strefy czasowej w R:

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

Wkrótce (w przypadku, gdy link będzie niedostępny w przyszłości):

# 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
Author: yuk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-16 16:14:42

Jaki system operacyjny?

Ogólnie, patrz help(Startup), ponieważ możesz ustawić wartości za pomocą .Renviron i jego wariantu dla całej witryny.

Ale prawdopodobnie powinieneś ustawić to dla całego komputera, co pod Linuksem może zmienić plik /etc/timezone, a na Windows ustawisz systemową zmienną środowiskową TZ.

Wreszcie, jeśli sformatowane wyświetlanie daty i czasu pokazuje CET/CEST, może to być już ustawione jako domyślne systemowe i twoje pytanie naprawdę brzmi, jak ustawić czas UTC poprawnie w Twoich obiektach R.

 8
Author: Dirk Eddelbuettel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-16 15:59:07

Uznałem, że odpowiedź @ Dirk jest bardzo przydatna dla Ubuntu, więc pomyślałem, że ją rozbuduję.

Z help(Startup) widzimy, że zmienne środowiskowe są ustawiane przez plik Renviron.site:

O ile w wierszu poleceń Nie podano opcji --no-environ, r wyszukuje pliki witryny i Użytkownika do przetworzenia w celu ustawienia zmiennych środowiskowych. Nazwa pliku witryny jest wskazywana przez zmienną środowiskową R_ENVIRON; jeśli nie jest ustawiona,' R_HOME/etc / Renviron.strona " jest używana

Możemy znaleźć ścieżka do R_HOME za pomocą funkcji R.home(), która w moim przypadku zwraca:

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

Dlatego plik Renviron.site znajduje się (dla mnie) w /usr/lib/R/etc/.

Po prostu otwórz ten plik i Wstaw wiersz:

TZ="UTC"

Lub podobne.

 4
Author: Alex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-17 03:10:21

- zmiana całej strefy czasowej OS jest młotem Kowalskim dla tego, co w zasadzie ma na celu zmianę algorytmów programowania. - Zmiana pliku startowego nie nadaje się do udostępniania kodu przez git.

Czy jest inny sposób, aby to zrobić w czasie uruchamiania skryptu dla sesji R?

 -1
Author: jrounds,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-16 19:28:39