我有一个如下所示的抽象基类:
#' 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()
然后我得到两个man文件但是在第二个类的man文件中,被覆盖类的docstring没有通过 - 我得到了基类的docstring。我做错了还是roxygen2的错误?
还有更好的方法吗?我希望能够使用多行文档字符串。
答案 0 :(得分:0)
搜索了roxygen github repo上的问题。发现已经存在与此相关的活跃问题:
https://github.com/klutometis/roxygen/issues/433
总结:从v5.0开始,roxygen中的Reference Classes的支持和文档并不是很好。建议的方法仍然是使用文档字符串,并且无法覆盖父母的文档字符串。