補遺A オブジェクト
オプションを操作するオブジェクト, パターン, そしてフックについて
オリジナルのページ: https://yihui.org/knitr/objects/
オリジナルの更新日: 2017-02-03
knitr パッケージはオプションと設定を制御する特別なオブジェクト (以下では obj
と表記) を使用します. このオブジェクトは次のようなメソッドを持ちます.
obj$get(name)
:name
という名前のオプションを返します. または,name
が2以上の長さの名前つきベクトルである場合はリストを返します. そしてname
が与えられなかった場合は全てのオプションのリストを返しますobj$set(...)
: オプションを永続的に変更します. 引数...
にはtag = value
の形式, またはlist(opt1 = value1, opt2 = value2)
のようなオプションのリストとして与えられますobj$merge(values)
: 新しいオプションリストを現在のリストに一時的にマージして, そのリストを返します (もとのリストは変更されません)obj$restore()
: オブジェクトを元に戻します
knitr のこれらのオブジェクトはユーザーから見ることができます.
opts_chunk
,opts_current
: チャンクオプションを管理しますopts_knit
: knitr パッケージ全体のオプションを管理しますknit_hooks
: フック関数を管理しますknit_patterns
: 入力ドキュメントから R コードを取りだすための正規表現を管理しますknit_engines
: R 以外の他の言語の処理に対する関数を管理します
knit_patterns
以外の他の全てのオブジェクトはデフォルトの初期値が設定されており, knit_paterns
は特に指定がない場合は入力ファイルのタイプに基づいて自動的に決定されます. knit_hooks
オブジェクトは1番よく使うことになるでしょう. そして残りの3つは直接使用する機会は少ないと思います. たとえば opts_chunk
はたいていはコマンドラインで直接実行するよりも入力ファイル内で設定します.
各チャンクが依存している knitr の設定は, そのチャンクが実行されるまえに設定されなければなりません. スクリプトの一番最初の, 他のどのチャンクよりも先に実行される位置に「knit
の設定用チャンク」を書き, その中で cache = FALSE
, include = FALSE
オプションを設定することをおすすめします. 設定用チャンクには, このチャンク自身の実行時に有効化される設定を想定する命令文は含めてはいけません33. 設定用チャンクはこのようになるでしょう34.
```<<setup, cache=FALSE, include=FALSE>>=
library(knitr)
opts_knit$set(upload.fun = imgur_upload, self.contained = FALSE,
root.dir = '~/R/project')
@
```
技術的な注意点として, これらのオブジェクトはクロージャに近い性質であることを挙げます. これらは関数によって返される, 関数リストです. 詳細は, エクスポートされてない knitr:::new_defaults
関数を確認してください. チャンクオプションはクロージャによっても管理されています.