私は米国外でRを使用しており、すべて英語で動作していますが、結果weekdays()
はまだスペイン語です:
Day <- seq(as.Date("2013-06-01"), by=1, len=30)
weekdays(Day)
[1] "sábado" "domingo" "lunes" "martes" "miércoles" (...)
平日を英語で取得する方法についてのアイデアはありますか?
オブジェクトの出力はDate
、ロケール カテゴリPOSIX*t
によって制御されているようです。LC_TIME
Windows では、次のように変更します。
## 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"
ほとんどの *NIX では、同等のものは次のようになります。
Sys.setlocale("LC_TIME", "en_US")
で説明されているように、特定のロケール名は OS に依存し?Sys.setlocale
ます。Windows で受け入れられる名前については、こちらを参照してください。Linux で使用できる名前については、こちらを参照してください。
ここでの私の回答から、次のようにロケールをいじることなく、平日を英語で取得できます。
c("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
"Friday", "Saturday")[as.POSIXlt(Day)$wday + 1]
Sys.setlocale("LC_TIME", "C")
私のためにトリックをしました。OS reports request to set locale to "EN" cannot be honored
また、これはエラーメッセージを表示しません。
Windows RStudioの下で
Sys.setlocale("LC_TIME", "English")
それが私のために働いた唯一のものでした。