web-dev-qa-db-ja.com

Rで平日英語で取得

米国外でRを使用していて、すべてが英語で機能していますが、weekdays()の結果はまだスペイン語です。

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

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

20
Renne007

DateおよびPOSIX*tオブジェクトの印刷は、LC_TIMEロケールカテゴリによって制御されているようです。

Windowsでは、次のように変更します。

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

?Sys.setlocaleで説明されているように、特定のロケール名はOSに依存します。 Windowsで受け入れられる名前については、 ここを参照 。 Linuxで受け入れられる名前については、 ここを参照

20
Josh O'Brien

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

c("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", 
  "Friday", "Saturday")[as.POSIXlt(Day)$wday + 1]
10
GSee
Sys.setlocale("LC_TIME", "C")

私のためにトリックをしました。また、これは私たちをもたらさないOS reports request to set locale to "EN" cannot be honored エラーメッセージ。

8
dainys

WindowsRStudioの下

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

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

4
EdgarGithub

ロケールをes_ESからen_US(両方ともUTF-8)に変更しようとすると、まったく同じ問題に直面しました。

Rメッセージは、システムロケールを変更できないため、Rメインワークスペースによって提供されます。コードがRスクリプトに挿入されると、新しいワークスペース(実​​行中のワークスペース)が作成され、ロケールをオーバーライドできます。

私のコードには、次の行を含めました。

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)

それが変化をもたらしました!

1

これはどう:

dev_null <- Sys.setlocale("LC_TIME", "english")
0
Donatoris