備忘ログ

チラシの裏的備忘録&メモ

R 4.0.4 の日本語周り(漢字表記)のバグのメモと暫定的回避策(R 4.0.5で解決済み)

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追記:

とのことでソースからビルドするとうまくいくのかも。ここまでわかった。

:追記終わり

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でパッチ版では解決されていたが)。

:追記終了