R(環境)

2025年1月 2日 (木)

[R]Windows版RでShift_JISを使う

Windows版は、バージョン4.1.3まではデフォルトで扱う日本語の文字コードはShift_JISだったが、次の4.2.0からはUTF-8になった。これをShift_JISにする場合はSys.setlocale関数に「Japanese_Japan.932」を指定して実行すればよい。漢字「石」はUTF-8による文字コードは0xe79fb3、Shift_JISは0x90ceであるので、文字コードが切り替わったことがわかる。

> R.Version()$platform
[1] "x86_64-w64-mingw32"
> R.Version()$version.string
[1] "R version 4.4.1 (2024-06-14 ucrt)"
> Sys.getlocale()
[1] "LC_COLLATE=Japanese_Japan.utf8;LC_CTYPE=Japanese_Japan.utf8;LC_MONETARY=Japanese_Japan.utf8;LC_NUMERIC=C;LC_TIME=Japanese_Japan.utf8"
> localeToCharset()
[1] "UTF-8"
> ra <- charToRaw("石見舞菜香")
> print(ra)
[1] e7 9f b3 e8 a6 8b e8 88 9e e8 8f 9c e9 a6 99
> Sys.setlocale(locale = "Japanese_Japan.932")
[1] "LC_COLLATE=Japanese_Japan.932;LC_CTYPE=Japanese_Japan.932;LC_MONETARY=Japanese_Japan.932;LC_NUMERIC=C;LC_TIME=Japanese_Japan.932"
警告メッセージ:
Sys.setlocale(locale = "Japanese_Japan.932") で:
using locale code page other than 65001 ("UTF-8") may cause problems
> localeToCharset()
[1] "CP932"
> ra <- charToRaw("石見舞菜香")
> print(ra)
[1] 90 ce 8c a9 95 91 8d d8 8d 81

2024年12月 6日 (金)

[R]タイムゾーンIDを一覧形式で得る

その環境下に搭載されているタイムゾーンを識別するID(タイムゾーンID)を一覧形式で得るには、OlsonNames関数を使う。

> OlsonNames()
[1] "Africa/Abidjan" "Africa/Accra"
[3] "Africa/Addis_Ababa" "Africa/Algiers"
[5] "Africa/Asmara" "Africa/Asmera"
(以下、表示省略)
> grep("Tokyo", OlsonNames())
[1] 322
> grep("Tokyo", OlsonNames(), value = TRUE)
[1] "Asia/Tokyo"

2024年12月 5日 (木)

[R]現在の環境のタイムゾーンを得る

Sys.timezone関数を使う。以下は、Windowsの日本語版バージョン4.3.1で実行した例。

> Sys.timezone()
[1] "Asia/Tokyo"
無料ブログはココログ

■■

■■■