RStudioがRmarkdownの発展としてQuartoをサポートしていると聞いて、さっそく試してみました。
Quartoのチュートリアルに従って、まずはrmd
からhtml
に変換してみます。 筆者はRStudioを使っていないので、コマンドラインで実行。なおOSはWindows11です。
quarto render testq.qmd --to html
しかしエラー発生…
loadNamespace(name) �ŃG���[: there is no package called 'jsonlite'
�Ăяo��: .main ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous>
���s����~����܂���
R installation:
Version: 3.5.0
Path: C:/PROGRA~1/R/R-35~1.0
LibPaths:
- C:/Program Files/R/R-3.5.0/library
rmarkdown: (None)
The rmarkdown package is not available in this R installation.
Install with install.packages("rmarkdown")
環境変数QUARTO_R
最初のエラーは文字化けしててよく分かりませんが、jsonlite
パッケージが見つからないと言っているようです。 しかしその前に、参照しているRのバージョンが3.5になってしまっているのが困ります。 3.5は自作パッケージの動作確認用に入れているだけのもので、普段は使っていません。
公式ドキュメントを見ると、Rのバージョンの指定は環境変数QUARTO_R
で行えるとあります。 しかしQUARTO_R
に4.2とかを指定しても特に変化がない…
Github issuesなどを見て分かったことは、QUARTO_R
には使いたいR本体の(たぶんどちらかと言えばRscriptの)ディレクトリパスを指定する仕様になっているということです。 それは分からないよ。設定例とかを載せておいてほしいですね。1
ということで環境変数QUARTO_R
を設定。
set QUARTO_R=C:\Program Files\R\R-4.2.2\bin
これはコマンドプロンプトで設定した例ですが、一応Rのコマンドで設定すると次のようになります。 最初からRStudioを使っていたらこの問題は起こらないかも知れないので、必要ないかも知れませんが…
Sys.setenv(QUARTO_R=r"(C:\Program Files\R\R-4.2.2\bin)")
ライブラリパスの設定
さて、Rのバージョン問題は解決したのでパッケージが見つからない問題に移りましょう。
Error in loadNamespace(x) : there is no package called 'jsonlite'
Calls: .main ... loadNamespace -> withRestarts -> withOneRestart -> doWithOneRestart
Execution halted
R installation:
Version: 4.2.2
Path: C:/PROGRA~1/R/R-42~1.2
LibPaths:
- C:/Program Files/R/R-4.2.2/library
rmarkdown: (None)
The rmarkdown package is not available in this R installation.
Install with install.packages("rmarkdown")
R4.2を使うようにしたら文字化けが解消されましたが、Rの多言語対応が進んでいるということでしょうか。ありがたいことです。
エラーを見るとどうやらRにプリインストールされているライブラリパスしか見に行っていない様子。 これは、Windowsで言うスタートメニューからRを起動したときのライブラリパスの状態になるようです。 先ほどの設定でProgram FilesにあるRのディレクトリを指定したから当然と言えば当然か…
普通の人ならスタートメニューからの起動で.Rprofileなどが読み込まれていつものRの環境になると思いますが、 筆者はデフォルトのホームディレクトリ(ユーザの「ドキュメント」フォルダ)が気に入らなくて別の場所にしており、 かつそれを環境変数R_USER
などを使わずに実現しているため、スタートメニューからの起動ではライブラリパスを認識してもらえなかったということのようです。
それならいつもの.Rprofileを読み込んでもらえるようにすればよいので、 今後のことは後で考えるとして、とりあえずカレントディレクトリを.Rprofileがあるフォルダに移して実行します。
> Output created: testq.html
無事に動きました!
ここまでがチュートリアル…長かった…
脚注
使いたいR本体のディレクトリパスを環境変数
PATH
に追加するという解決法を取っている方もいました。Quartoは最初にPATH
を見に行くと書かれているので確かにそれでも動きそうです。↩︎