I am using R outside the US and I got everything working in English, but the result of weekdays()
is still in Spanish:
Day <- seq(as.Date("2013-06-01"), by=1, len=30)
weekdays(Day)
[1] "sábado" "domingo" "lunes" "martes" "miércoles" (...)
Any ideas on how to get the weekdays in English?
Printing of Date
and POSIX*t
objects seems to be controlled by the LC_TIME
locale category.
On Windows, you change it like this:
## First, save the current value so we can restore it later
Sys.getlocale("LC_TIME")
# [1] "English_United States.1252"
## 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"
On most *NIXes, the equivalent would be:
Sys.setlocale("LC_TIME", "en_US")
The particular locale names are OS-dependent, as mentioned in ?Sys.setlocale
. For names accepted by Windows, see here. For names accepted by Linux, see here.