R version 4.0.4 (2021-02-15) – “Lost Library Book”がリリースされたが、日本語周りの漢字表記にバグがあるのでメモ。
漢字を使用する環境(Windows版ローカル環境実行)
x <- "令和3年2月15日" x
## [1] "\u4ee4\u548c3\u5e742\u670815\u65e5"
追記:どうやらMac版も同様のバグがある様子(R 4.0.4 が出たけど - 裏 RjpWiki)で、ベータ版から続くバグの様子。漢字だけだめな様子。:追記終わり
回避策としては、cat()
やmessage関数系を重ねると正しく表現できるようになる。massage()
は表現できているというよりメッセージになってしまっているが。
cat(x)
## 令和3年2月15日
message(x)
## 令和3年2月15日
print()
ではだめ。
print(x)
## [1] "\u4ee4\u548c3\u5e742\u670815\u65e5"
意気揚々と新しいバージョンにアップデートしたが、これではちょっと微妙。もうすこし調べてみる。
現在のセッションインフォメーションも併記しておく。
sessionInfo()
## R version 4.0.4 (2021-02-15)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 10 x64 (build 19042)
##
## Matrix products: default
##
## locale:
## [1] LC_COLLATE=Japanese_Japan.932 LC_CTYPE=Japanese_Japan.932
## [3] LC_MONETARY=Japanese_Japan.932 LC_NUMERIC=C
## [5] LC_TIME=Japanese_Japan.932
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## loaded via a namespace (and not attached):
## [1] compiler_4.0.4 magrittr_2.0.1 tools_4.0.4 htmltools_0.5.1.1
## [5] yaml_2.2.1 stringi_1.5.3 rmarkdown_2.6 knitr_1.31
## [9] stringr_1.4.0 xfun_0.21 digest_0.6.27 rlang_0.4.10
## [13] evaluate_0.14
2021-02-17追記:
R 4.0.4,CentOS 7でソースからビルドしてみた(yum install pcre2-develが必要だった)。こちらは日本語表示は問題ない
— Haruhiko Okumura (@h_okumura) 2021年2月16日
とのことでソースからビルドするとうまくいくのかも。ここまでわかった。
:追記終わり
2021-02-18追記:
[Rd] issue with print()ing multibyte characters on R 4.0.4
r-develのメーリングリストにバグとして報告されていた。Threadを読み勧めていくと、「意図的じゃないんだよー。開発中にバグを誰も報告してくれなかったから、知らんかったわー。しょうがないから4.0.3に戻してね。」との公式見解の様子。
開発版を使うのはやや手間がかかるしRを使う自分の目的とはちょっと違うので手をだしていなかったが、ある程度意図的開発版を使っていかなければこういう特にローカルなバグは誰も報告せずに残ってしまう可能性があるんだなぁ、と思った。ちょと手を出すか……。
ちなみにR 4.0.4でのローカル文字についてデーヴァナーガリーやハングルは大丈夫そうだけど、漢字は繁字体や簡体字を含めてダメそう、あとはローカル文字としては試した範囲ではアラビア文字もだめっぽかった。
:追記終わり
2021-04-01追記:
2021/03/31リリースされたR 4.0.5で正式リリース版として解決されていた(NEWSにはそれらしきバグフィクスの情報記載はないが実際の挙動はOKだった)(それ以前にR 4.0.4でパッチ版では解決されていたが)。
:追記終了