私の会社で役に立ついくつかの機能を備えたパッケージを作成しました。最近、誰もがアクセスできる必要はなく、パッケージの他の(エクスポートされた)関数から内部的に呼び出されるヘルパー関数があるように、パッケージを再構築しました。これらのヘルパー関数は名前空間にエクスポートされません(.R
ファイルの#' @export
はありません)。今自作のRパッケージが独自の機能を見つけられない
、私は「主要」(エクスポート)関数のいずれかを呼び出すときに、私はエラーメッセージ(本当の関数名)を取得:major_functionで
エラー():機能「helper_functionを見つけることができませんでしたが「
イムかなりの建物のパッケージで新しいが、(https://cran.r-project.org/web/packages/roxygen2/vignettes/namespace.htmlから)私はこれまで理解したものから、どちらもヘルパー関数をエクスポートするために、また、主要な機能の.R
ファイルに#' importFrom my_package helper_function
を追加する必要があってはなりません。
これを試してみると、実際にはパッケージのチェック時にエラーが発生しました。私もmy_package:::helper_function
でヘルパー関数を呼び出そうとしましたが、これは、このような同じパッケージから関数を呼び出す必要はほとんどないはずです。
は多分有用な情報:
エラーは、私は内部的にhelper_function
を呼び出しmajor_function_2
を呼び出すmajor_function_1
を呼び出す場合にのみ発生します。
ネストされたヘルパー関数の問題点は何ですか?関連する問題を避けるにはどうすればいいですか? –
名前空間を正しく追跡する限り問題はありません。これは、パッケージにローカルである場合、それらがエクスポートされた関数と同じ名前空間に存在することを確認します。別のパッケージであれば、そのパッケージをインポートし、このパッケージがそれらをエクスポートすることが必要です(もし影響を与えることができれば)。 [また、パッケージとRoxygenを再コンパイルすることを忘れないでくださいいつでもきれいな環境から:)] –
私は構造をもう一度チェックし、何も変更していない、パッケージを再コンパイルして、それは働いた。私は前に何が間違っていたのか分かりません。私はsomehoがクリーンな再コンパイルせずに(私はこれをやったと思っていたにしても)さまざまなものを変えてしまったと思います。 –