work_with_myS3
新しい S3 クラスで動作するはずの新しい関数を定義しますmyS3
。
work_with_myS3 = function (x) {
UseMethod("work_with_myS3", x)
}
work_with_myS3.myS3 = function(x) {
some code
}
これを通常の R セッション (RStudio を使用しています) でソースすると、期待どおりに動作します。myS3
オブジェクトをフィードすると、機能します。何か奇妙なものをフィードすると、エラーがスローされます。
> work_with_myS3(123)
Error in UseMethod("work_with_myS3", x) :
no applicable method for 'work_with_myS3' applied to an object of class "c('double', 'numeric')"
ただし、これをパッケージに含めるときは、ビルドし、リロードして呼び出してみます。
Error: could not find function "work_with_myS3"
ヘルプページは正常に動作しますが、?work_with_myS3
. これは私がそれを文書化する方法ですdevtools::document()
:
#' Do stuff with myS3
#'
#' What it does
#' @import dplyr
#' @param x object of class myS3
#' @method work_with_myS3 myS3
#' @export
名前空間にも次のエントリがあります。
S3method(work_with_myS3,myS3)
これはなぜですか、またパッケージで機能を利用できるようにする方法は? 私は些細な間違いを犯している疑いがあります。