valores una studio recodificar factor etiquetas define columna cambiar r timezone date-arithmetic

una - labels variables in r



¿Cómo cambiar la zona horaria por defecto en R? (5)

¿Qué sistema operativo?

En general, consulte la help(Startup) ya que puede establecer valores a través de .Renviron y su variante de todo el sitio.

Pero probablemente debería configurar esto para su máquina como un todo, lo que bajo Linux puede alterar el archivo /etc/timezone , y en Windows establecería una variable de entorno TZ .

Por último, si su visualización formateada de fechas y horas muestra CET / CEST, es posible que esto ya esté configurado como predeterminado del sistema y su pregunta realmente es cómo configurar sus tiempos UTC correctamente en sus objetos R.

¿Cómo puedo cambiar la zona horaria predeterminada en R? Estoy trabajando con series de tiempo. Todas mis series de tiempo se definen en la zona horaria UTC, pero si imprimo una fecha, siempre se realiza en la zona horaria CET / CEST.


-Cambiar toda la zona horaria del sistema operativo es un mazo para lo que básicamente está destinado a cambiar los algoritmos de programación. -Cambiar el archivo de inicio no se presta para compartir código a través de git.

¿Hay otra manera de hacerlo en el tiempo de ejecución del script para la sesión R?


La respuesta de @ Dirk me pareció muy útil para Ubuntu, así que pensé en ampliarla.

Desde la help(Startup) vemos que las variables de entorno están establecidas por el archivo Renviron.site :

A menos que se especifique --no-environ en la línea de comandos, R busca archivos de sitio y de usuario para procesar las variables de entorno. El nombre del archivo de sitio es el indicado por la variable de entorno R_ENVIRON; si esto no está configurado, se usa ''R_HOME / etc / Renviron.site''

Podemos encontrar la ruta a R_HOME usando la función R.home() , que en mi caso devuelve:

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

Por lo tanto, el archivo Renviron.site se encuentra (para mí) en /usr/lib/R/etc/ .

Simplemente abre este archivo e inserta la línea:

TZ="UTC"

o similar.


Otra forma de hacerlo, sin cambiar todo el tiempo de la computadora, es usar el comando setenv de esta manera: Sys.setenv(TZ=''GMT'')


Vea este buen artículo sobre el cambio de zona horaria en R:

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

En breve (en caso de que el enlace no esté disponible en el futuro):

# 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"