2

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)

これはなぜですか、またパッケージで機能を利用できるようにする方法は? 私は些細な間違いを犯している疑いがあります。

4

1 に答える 1