0

次のような抽象基本クラスがあります。

#' An Abstract Base Class 
Filter <- setRefClass(
  Class = "Filter",
  methods = list(
    train = function(x) {
      "Override this method to train any associated parameters for the filter on the supplied data"
  print("no learning to be done")
})
)

そして、このクラスを拡張する次のクラス:

#' Filter class that leverages the prcomp R method. 
PcaFilter <- setRefClass(
  "PcaFilter",
  contains="Filter",
  fields=list(
    d="numeric",
    model="ANY"
    ),
  methods=list(
    train=function(x) {
      "train PCA model, store result to model attribute of obj"
      model <<- prcomp(x)
    })
)

走った後

roxygen2::roxygenize()

次に、2 つの man ファイルを取得しますが、2 番目のクラスの man ファイルでは、オーバーライドされたクラスの docstring が取得されません。基本クラスの docstring を取得します。私は何か間違ったことをしていますか、それともこれは roxygen2 のバグですか?

また、これを行うより良い方法はありますか?複数行の docstring を使用できるようにしたいと考えています。

4

1 に答える 1

0

roxygen github リポジトリの問題を検索しました。これに関連するアクティブな問題が既に存在することがわかりました:

https://github.com/klutometis/roxygen/issues/433

要約すると、roxygen の参照クラスのサポートとドキュメントは、v5.0 の時点ではあまり良くありません。推奨される方法は引き続き docstring を使用することであり、親の docstring をオーバーライドすることは不可能です。

于 2016-02-08T10:37:12.233 に答える