21

私は米国外でRを使用しており、すべて英語で動作していますが、結果weekdays()はまだスペイン語です:

Day <- seq(as.Date("2013-06-01"), by=1, len=30)
weekdays(Day)
[1] "sábado"    "domingo"   "lunes"     "martes"    "miércoles"  (...)

平日を英語で取得する方法についてのアイデアはありますか?

4

6 に答える 6

23

オブジェクトの出力は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 で使用できる名前については、こちらを参照してください

于 2013-06-10T19:21:45.737 に答える
12

ここでの私の回答から、次のようにロケールをいじることなく、平日を英語で取得できます。

c("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", 
  "Friday", "Saturday")[as.POSIXlt(Day)$wday + 1]
于 2013-06-10T20:11:05.713 に答える
11
Sys.setlocale("LC_TIME", "C")

私のためにトリックをしました。OS reports request to set locale to "EN" cannot be honoredまた、これはエラーメッセージを表示しません。

于 2014-09-10T17:09:30.080 に答える
8

Windows RStudioの下で

Sys.setlocale("LC_TIME", "English")

それが私のために働いた唯一のものでした。

于 2014-08-06T21:47:21.683 に答える