r - shinythemes - shiny using html
Obtener los días de semana en inglés en R (5)
Estoy usando R fuera de los Estados Unidos y tengo todo funcionando en inglés, pero el resultado de weekdays()
todavía está en español:
Day <- seq(as.Date("2013-06-01"), by=1, len=30)
weekdays(Day)
[1] "sábado" "domingo" "lunes" "martes" "miércoles" (...)
¿Alguna idea sobre cómo obtener los días de semana en inglés?
Bajo windows RStudio
Sys.setlocale("LC_TIME", "English")
Eso fue lo único que me funcionó.
Desde mi respuesta aquí , puede obtener los días de semana en inglés sin tener que jugar con locales como este:
c("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
"Friday", "Saturday")[as.POSIXlt(Day)$wday + 1]
Enfrenté el mismo problema al intentar cambiar la configuración regional de es_ES a en_US (ambos UTF-8).
El mensaje R está dado por el espacio de trabajo principal de R, ya que no puede cambiar la configuración regional del sistema. Si el código se inserta en un script R, se crea un nuevo espacio de trabajo (el que se está ejecutando) y se puede anular la configuración regional.
En mi código incluí las siguientes líneas:
curr_locale <- Sys.getlocale("LC_TIME")
Sys.setlocale("LC_TIME","en_US.UTF-8")
#<specific code for graph generation>
Sys.setlocale("LC_TIME",curr_locale)
Eso hizo el cambio!
La impresión de objetos Date
y POSIX*t
parece estar controlada por la categoría de configuración regional LC_TIME
.
En Windows, lo cambias así:
## First in Spanish
Sys.setlocale("LC_TIME","Spanish Modern Sort")
# [1] "Spanish_Spain.1252"
weekdays(Sys.Date()+0:6)
# [1] "lunes" "martes" "miércoles" "jueves" "viernes" "sábado"
# [7] "domingo"
## Then back to (US) English
Sys.setlocale("LC_TIME","English United States")
# [1] "English_United States.1252"
weekdays(Sys.Date()+0:6)
# [1] "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday"
# [7] "Sunday"
En la mayoría de * NIXes, el equivalente sería:
Sys.setlocale("LC_TIME", "en_US")
Los nombres de las configuraciones regionales particulares dependen del sistema operativo, como se menciona en ?Sys.setlocale
. Para los nombres aceptados por Windows, vea aquí . Para los nombres aceptados por Linux, vea aquí .
Sys.setlocale("LC_TIME", "C")
hizo el truco para mí Además, esto no nos trae la OS reports request to set locale to "EN" cannot be honored
un mensaje de error.