(免責事項: WindowsやmacOSで動作確認するのがめんどくさくてうろ覚えで書いています。間違ってたらご指摘ください)
裏Rjpwikiで言及されていて知った人も多そうですが、R 4.0.4は日本語を含むマルチバイト文字の表示にバグがあります。
具体的には、次のように、ほとんどの文字が\uXXXX
というUnicodeエスケープされた形式で表示されてしまいます。
"鬼は外" #> [1] "\u9b3cは\u5916"
この問題はWindows、macOSで発生し、Linuxは大丈夫です(私はUbuntuを使ってるので気付かなかった)。
ただし、これは表示だけの問題で中身のデータには問題ありません。また、表示も print()
だけの問題です。
例えば、message()
やcat()
で表示してみれば普通に表示されることが確認できるはずです。
message("鬼は外") #> 鬼は外
また、次のような場合もデフォルトのprint()
ではない表示方法が使われているので問題は起こりません。
tibble
の列として表示された場合(data.frame
だとダメ)glue
のデータとして表示された場合
ちなみに、この問題はすでに開発版および patched 版では修正されていますが、 すでにリリースされてしまった R 4.0.4 に取り込まれることはありません。 次のリリース(おそらくは R 4.1.0?)を待つか patched 版を使いましょう。
原因は、絵文字対応?か何かで print()
が対応するUnicodeの範囲を拡張した変更をリリース版に取り込むのをミスった、
ということのようでした。
It looks like a line in the iswprint table got deleted in the merge from R-devel. (https://stat.ethz.ch/pipermail/r-devel/2021-February/080473.html)
ちなみに、私もぜんぜんやってないので偉そうなことは言えないのですが、もしRのバグを発見された場合はR bugzillaに報告しましょう。 Twitter で日本語で騒いでいても勝手にバグが直ったりはしないです。
R bugzilla へのアカウント登録は、以下に書かれているように理由を添えて指定の宛先(ここでは伏せたのでリンク先をご参照ください)にメールを送るとすぐにつくってもらえます。 私の場合は5時間で返事が来ました。
NOTE: due to abuse by spammers, since 2016-07-09 only “members” (including all who have previously submitted bugs) can submit new bugs on R’s Bugzilla. In order to get a bugzilla account (i.e., become “member”), please send an e-mail (from the address you want to use as your login) to bug-report-request@...省略... briefly explaining why, and a volunteer will add you to R’s Bugzilla members. www.r-project.org
その他の報告の仕方のマナーなどについても上のリンク先に書かれています。
バグかどうか確信が持てない、英語で報告する自信がない、といった場合にはまず r-wakalang の #r_chotowakaru
チャンネルあたりに相談してみるとよいと思います。