4 よくある質問 (FAQ)

オリジナルのページ: https://yihui.org/knitr/faq/

オリジナルの更新日: 2017-02-17


この FAQ は issues や私 (Yihui) のブログやEメールに届いた質問などを蓄積したものです. 個人的な考えとして, 私は FAQ という概念の大ファンでもありませんし, FAQ とはほとんどバグのような存在であると思っているため, このページのリストはなるべく少なくしたいです.

  1. knitrが動かないんだけど…」
    • まず最初に, あなたの R パッケージ (update.packages() を使います) とたぶん R 本体も (ところで, 現在のあなたのRのバージョンは何ですか?) 更新してください. それから動くかどうかを確認してください. もしそれでも動かなかったら,「必要最低限の再現例 (minimal reprex)」のファイルと xfun::session_info('knitr') の実行結果を issue に投稿してください.
  2. 「パッケージのサイトの説明が役に立たないときはどこで質問するのがいいですか?」
    • 何を質問したいかにもよりますが, 以下のような選択肢があります24 (特に最初の2つは私もよく巡回しています).
      • (推奨) Stack Overflow: 一般的な質問 (より専門的で早い回答がつきます). rknitr タグを忘れずにつけてください.
      • Github issues: バグ報告と機能追加の要望のみにしてください.
      • knitr mailing list または R-help のメーリングリスト: 一般的な質問とその回答が, 一般公開されるEメールによってやりとりされます.
      • 私の個人的なEメール: 本当にプライベートな問題でない限り非推奨です25.
      • Twitter (@xieyihui): 本当に簡単な問題だと確信があるなら.
  3. knitr のソースドキュメントを書くのに最適のエディタソフトは何ですか?」
  4. > とか + とかのプロンプト記号はどこへいったんですか? 出力にこれがないと落ち着きません」
    • 私はこれらが意味をなさないと考えているので, デフォルトではこれらは除去されています. R の本に >+ を載せるのを嫌う理由はこのようなものです: 本に書かれた R コードを読む際に, こいつらは私の精神をめちゃくちゃにひねりちぎろうとし, 私の両眼に流血を欲してきます. マジで 1 + 1 ではなく > 1+1 という表記を読むのがお好みな奇特な方は, チャンクオプション の章にあるように prompt オプションで設定できます26.
  5. 「ワーキングディレクトリとはなんですか? コードチャンク内でワーキングディレクトリを変更できますか?」
    • あなたはそういうことをしないほうがよいです. ワーキングディレクトリは常に getwd() で分かります (出力ファイルは全てここに書き出されます) が, コードチャンクは入力ファイルがあった場所で評価しています. R コード実行中のワーキングディレクトリ変更は一般的に, よくない使い方 (バッドプラクティス) です. 詳しくは issue #38 での議論をご覧ください. また, できることなら常に, 絶対パスによるディレクトリ指定も回避するべきです. 代わりに相対パス指定を使ってください. そのようなコードは再現性を損なうからです. ここまで言ってもまだコードチャンク内で setwd を使おうというのなら, 新しく設定したワーキングディレクトリは指定したチャンクにのみ適用され, 以降のコードチャンクでは本来のワーキングディレクトリに差し戻されることを留意してください.
  6. 「出力された灰色の背景色ボックスが狭すぎます.」
    • それはボックスが狭すぎるからではありません. ボックス幅は現在行の幅が適用されます. つまりあなたの出力のほうが広すぎるのです. ページのマージンを超えるような出力を避けるため, もっと小さな width オプションを設定してください (例: options(width = 60), 詳細はexample 038 を参照してください.)
  7. 「コードチャンクにリテラルや生のコードを書く方法は? たとえばパースせずにコードチャンクを書きたいです. チュートリアルに便利だと思います.」
    • コードチャンクで verbatim エンジンを使えば可能です. これがその例です.
    
    ````{.default .numberLines .lineAnchors}
    ```{r, eval=TRUE}
    1 + 1
    ```
    ````
    • インラインの R コードでは knitr::inline_expr() を使うことになるでしょう (knitr ver. 1.8 以降で使用できます). R Markdown を使っているなら, あるトリックが可能です. `r直後に, スペースなどを挟まずすぐ改行を入れ, 二重のバッククオート (バックティック) のペアでインラインの評価式全体を囲みます. 例えば以下のようになります. この挙動の説明に興味があるなら このページ を見てください (訳注: 未翻訳).

訳注: ソースコードでの記述

````
```{r, eval=TRUE}`r ''`
1 + 1
```
````

実際に表示されるもの

```{r, eval=TRUE}
1 + 1
```

インライン式では以下のようになります


ここに生のインラインR評価式を出力: `` `r
1+1` ``.

ここに生のインラインR評価式を出力: `r 1+1`.

  1. 「何かお役に立てることはありますか?」
    • paypal でドネートできますし, たのしい GIF アニメを私にツイートしたり, Github で knitr のリポジトリをフォークしたりコードの改善に貢献したりできます.
    • パッケージや knitr book を引用してください. R で citation('knitr') をしてみてください.
  2. 「このドキュメントの修正や小さな変更を投稿するにはどうすればいいですか?」
    • R パッケージを修正したい場合は リポジトリ へ移動し, ツールバー右上の Edit ボタンを押します. それから必要な修正をします. 投稿の概要を書いて, Propose file change をクリックして, プルリクエストを投稿してください.
    • このウエブサイト (https://yihui.org/knitr) 上の修正や変更提案は, ページ左側の Edit this page を押して, あとは Github の手順に従ってください27.

  1. 訳注: 英語が苦手な場合は, Stack Oveflow 日本語版, または R-wakalang などのコミュニティがあります↩︎

  2. 訳注: リンク先の投稿を要約すると, Yihui氏個人で次から次へと来る質問をさばくのは限界があるし, オープンコミュニティは多くの回答者がいて既出の質問に対する答えも共有でき効率的だ, ということです↩︎

  3. 訳注: Yihui 氏がこれを嫌う理由はここでも簡潔に書かれています. R Markdown においては, それ以外の方法でもコードの装飾をカスタマイズできます. たとえばこの翻訳版でなされているようにコピーボタンや行番号をつけたりできます.↩︎

  4. 訳注: 原典ではなくこの翻訳版に対する修正提案は https://github.com/Gedevan-Aleksizde/knitr-doc-ja で受け付けています↩︎