Edited at

Rのパッケージのヘルプを日本語で書く

More than 3 years have passed since last update.

Rパッケージの作成方法は以下を参照してください。

東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法

Macではencodingの指定をするだけで問題なく日本語が使えるが、Windowsでは問題があるのでメモ。


  1. 今のところWindows環境では roxygen2 (4.1.0) を使って日本語ヘルプ(*.Rd)は生成できないようだ。Windowsで日本語ヘルプを利用するには自分で *.Rd を書く必要がある。

  2. 重要な点はヘルプの title には日本語は使わない方が良いということ、使えないわけではないが使えない漢字がある。しかし title では使えない漢字も、description 内では使えるという(何故に?)。

encodingの指定は下のようにする。

DESCRIPTIONファイルに以下の文を追加する。

Encoding: UTF-8

roxygen2でヘルプを生成する場合は Rのソースコード(R/*.R)に以下の文を追加する。

#'@encoding UTF-8

ヘルプの元ファイル(man/*.Rd)に以下の文を追加する。

\encoding{UTF-8}

man/*.RdがShift-JISで\encoding{Shift-JIS}を指定すると、RのヘルプファイルはUTF-8に変換されるようだ。


Rstudio利用時の不具合

この設定でビルドすればヘルプが日本語のパッケージが完成する。オリジナルのRではこれで問題は発生しない。しかし、WindowsのRstudioではまだ問題があり解決できていない。「?関数名」などでヘルプを表示させると正常に表示される。RStudioでは、コンソールで関数名の途中まで入力しタブを押すと残りが補完され、さらに、ヘルプの内容がポップアップする。ここでエラーが出る。おそらく問題はWindows版RStudioのコンソールの文字コードがShift-JISになっているためと考えられる。試しに、man/*.RdをSHIFT-JISで作成し、\encoding{UTF-8}と記述すると、タブで補完した時にポップアップで日本語が表示されるが、?関数名で表示されるヘルプは文字化けする。コンソールの文字コードを変えるにはロケールを変える必要があるが。Sys.setlocale("LC_ALL", "ja_JP.UTF-8")としてもロケール変更が拒否される。

WindowsではJapanese_Japan.932以外の日本語のロケールの設定が拒否される。どうやらこれはWindowsのCのライブラリがShift-JIS以外に対応していないためのようだ。参考

Sys.setlocale(locale="C")とすると関数名の補完時のエラーは発生しない。しかし、ポップアップに日本語は表示されない。

932はShift-JISのこと、codepageというらしい。utf-8は65001 参考