18 その他のトラブルシュート

18.1 コードブロックや出力テキストの折り返し・改行位置がおかしい

折り返し位置を規定するグローバルオプション getOptions(width) を確認する. 通常は 80 かそれより大きい値が設定されていることが多いが, 何らかの理由で小さく設定されている可能性もある. 確実を期すなら, 冒頭のチャンクに options(width = 140) のように明示的に設定する.

また, コードブロックの折り返しや改行位置がおかしい場合, それはコード自動整形の問題である可能性がある. rmdja はスライド用テンプレート以外でデフォルトでコードブロックの自動整形を適用しているが, blackyapf のある Python などと違い, R のコード自動整形ツールは機能やバリエーションがあまり多くない. コードの整形にこだわるなら, ある程度は手動でやる必要がある. コードの自動整形を無効にするなら, 冒頭のチャンクで以下を実行する.

knitr::opts_chunk$set(tidy = F)

コードの自動整形の詳細については付録 A.3 を参照.

18.2 (TODO) Windows 特有の問題

日本ロケールの Windows OS で RStudio を動かす場合によくあるエラーについても対処法を書いておく. これは R-wakalang でもよく訊かれる質問である. これらは Windows の仕様が根本的にアレなことに起因するため, Linux 等の仮想環境上でRを動かせば一切発生しない問題ではあるが, おそらく初心者の多くがハマっているので仮想環境を使わない解決方法を書いておく.

まず, チャンク等のエラーメッセージが文字化けして読めない. これはロケールの問題であることが多い. 残念ながら日本語版 Windows は未だに CP932 エンコードを使用しているため, CP932 を使うと R の表示で不整合が発生する. よって, CP932 を使用すれば解決できる.

Sys.setlocale(locale = "Japanese_Japan.932")

しかし R の他の部分の多くは UTF-8 を前提として作られているので今度はそちらでいろいろな対処が必要になってしまう. もしこのような「仕様」が気に入らないのなら結局のところ AWS 等のクラウドサービスや仮想環境マシンを使い Liunx 系の環境に移行してしまうのが確実である (もちろん Linux でも日本語ロケールの初期設定は必要である).