4

この質問は、 roxygen2 v4 を使用して名前にドットを含む S3 以外のメソッドをエクスポートすることに関連していますが、これとは異なります。その投稿から@export function.name、名前空間が roxygen によって正しく書き込まれるためには、使用する必要があることを学びました。私はそれを行い、NAMESPACEは正しく書かれています。

私の問題は、R CMD Check を実行するときに発生します。function を持つレガシーコードがありますtail.g()。R CMD Check は、明らかな S3 メソッドがエクスポートされたが登録されていないことを通知する NOTE をスローします。

再現可能な例を以下に示します。注がxxxx.gないことに注意してください。これtailは、utils パッケージのジェネリックであるため、特別な回避策が必要であると私に信じさせます。これはレガシー コードであるため、tail.g の名前を tail_g に変更したくありません。CRAN 提出を成功させるために、すべてのメモを削除したいと思います。

library(roxygen2)
package.skeleton("test")
writeLines(
  "#' Check an argument 
  #' 
  #' Checks an argument.
  #' @param ... Some arguments.
  #' @return A value.
  #' @export tail.g
  tail.g <- function(...) 0",
  "test/R/tail.g.R"
)
writeLines(
  "#' Check an argument 
  #' 
  #' Checks an argument.
  #' @param ... Some arguments.
  #' @return A value.
  #' @export xxxx.g
  xxxx.g <- function(...) 0",
  "test/R/xxxx.g.R"
)
roxygenise("test")
setwd("./test")
devtools::check(document=FALSE)

注:

checking S3 generic/method consistency ... NOTE
Found the following apparent S3 methods exported but not registered:
  tail.g

名前を変更せずに tail.g() の NOTE を削除するにはどうすればよいですか?

4

1 に答える 1