2

私は R パッケージを開発していpkます。私はそれを正常にインストールして使用しましたが、今はパッケージrun_examples内の関数の助けを借りて例をクリーンアップしようとしています. devtoolsただし、最初の例でクラッシュします。

> require(pk)
> require(devtools)
> run_examples("~/[full path]/pk")
Updating pk documentation
Running 45 example files in pk
--------------------------------------------------------------------------------
Loading pk
Running examples in pk-package.Rd
--------------------------------------------------------------------------------

1> ########################################################################
1> ## Simulate a dataset ... blah blah
1> set.seed(1)
1> x = my_pk_fun(a = 1)
Error in eval(expr, envir, enclos) : could not find function "my_pk_fun"
Loading pk

既にパッケージを ( を使用して) ロードしたので、 を表示するrequireには、さらに何をする必要がありますか? Rセッションに実際に存在することを確認しました。my_pk_funrun_examplesmy_pk_fun

更新: Dirk のコメントに従って、名前空間ファイルを調べたところ、完全に空であることがわかりました。ドキュメントで提案されているように(推奨されていませんが)、 を挿入exportPattern("^[^\\.]")しました。これは、を含むすべての関数をエクスポートすることになっているようですmy_pk_fun。しかし、上記の実験を繰り返すと、(a) 同じエラーが発生し、(b) 名前空間ファイルの内容が削除されます! run_examplesが名前空間ファイルを空にするのはなぜですか?

4

1 に答える 1

0

私は自分の質問の解決策を推測します:

私が省略した詳細の 1 つは、run_examples何かを行う前に、最初にroxygen2パッケージをインストールする必要があることです (ドキュメントroxygen2の「提案」の下にのみリストされていますがdevtools!)。

のソース コードをrun_examples調べてみると、確かにroxygenize. パッケージを roxygenize すると、ファイル が書き換えられる可能性があることが以前に指摘されていました。NAMESPACE

明確に言うと、ファイルをrun_examples空にする理由は、(1) パッケージを roxygen 化したのに対し、(2)ソース ファイルにコマンド (またはその他の roxygen2-speak ) をまったく含めていないためです。NAMESPACErun_examples# @export

結論: フレームワーク内でパッケージをビルドし、roxygen2すべてのドキュメントをソース コードにコメントとして含める場合を除き、 !.Rdは使用しないでください。ドキュメントrun_examplesでこれに関する警告が必要なようです。run_examples

回避策: 本当に を使用する必要があり、実際に非常にクールなrun_examplesについて少し学びたい場合は、ここから始めてください。roxygen

于 2014-01-06T04:27:33.457 に答える