roxygen を使用して独自のパッケージを作成しています。問題を引き起こしている関数があります:
##' extract.sig.metadata
##' @param foo bar
##' @author me
##' @export
extract.sig.metadata <- function(foo){
# does stuff
}
パッケージのスケルトンを (devtools の create(my-package) で) 作成し、document() を使用して roxygen タグを処理しました。ただし、パッケージをインストールしようとすると失敗します。
... *ヘルプ インデックスのインストール ** パッケージ インデックスの構築 ** インストールされたパッケージをロードできるかどうかのテスト エラー: 名前空間 'my-package' のロード中にオブジェクト 'extract' が見つかりません エラー: ロードに失敗しました 実行が停止しました
roxygen は、extract.sig.metadata が S3 メソッド、つまり export() の特殊な形式であると考えていると確信していますが、関数 export() が見つからないため、壊れています。しかし、これは s3 メソッドではなく、単なる extract.sig.metadata という関数です。Rd コードを見ると、/usage タグが奇妙に見えます。
\usage{
\method{extract}{sig.metadata}(spec.df, var = "product_name",
ratio.cutoff = 0.001, prob.modifer = 3, frequency.cutoff = NA,
verbose = F, assign.to.global.env = FALSE, use.bigrams = T, clean = T,
ngram.dupe.n.cutoff = 0.1, max.obs = 10000)
}
名前をextractSigMetadataに変更すると、問題は技術的に修正され、.Rdコードが変更されます。
\usage{
extractSigMetadata(foo)
}
しかし、関数の名前を変更する必要はありません (私のパッケージには同じ問題を抱えている関数がたくさんあり、それらは多数のスクリプトで使用されています。名前を変更するのは非常に面倒です)スキーマではない)。
---> これが単なる通常の関数であり、変な s3 メソッドではないことを roxygen に伝える方法を知っている人はいますか? @method タグと関係があると思いますが、これを機能させるのに十分な適切な使用方法がわかりません。ありがとう!!!