记录时使用S3类作为S4我有以下上下文:Roxygen2:重载R基本功能(COR)
我做过载cor
基函数,使得我在我的包.R文件以下声明:
#'export
setGeneric("cor")
现在我要创建我的对象(类名为stranger
)特定的功能 - 在这里为简单起见,我只考虑我的对象是与名为.id
附加列data.table。
#' Correlation for stranger objects
#' describeIn cor Correlation method for stranger objects.
setMethod("cor",signature(x="stranger"),function(x, method = c("pearson", "kendall", "spearman")){
selectMethod("cor","ANY")(x[,-'.id',with=FALSE],y=NULL, use="everything",method=method)
})
如果我understant setGeneric
,它依赖于S4类 - 因此signature
参数。
不过,我不使用S4类,但建立自己的stranger
对象,具有简单的老办法:
buildClass <- function(x,...){
#... prepare out object as data.table with .ìd column
class(out) <- c("stranger", class(out))
return(out)
}
也就是说,我没有S4类我的对象。 Dispacthing仍然有效:在我的对象调用cor
正确应用专用方法。
我的问题是关于适当记录与ROxygen2。目前,加载我的功能的时候,我碰到下面的信息:
Updating stranger documentation
Loading stranger
Creating a generic function for 'cor' from package 'stats' in package 'stranger'
in method for 'cor' with signature 'x="stranger"': no definition for class "stranger"
我已经仔细阅读roxygen2加上一些似乎对计算器的相关问题哈德利的小插曲,但他们只处理或者与古典S3机制或纯S4,而我没有S4的构造与setClass
和setGeneric
依靠S4。
感谢。确实。我还发现下面的可能性,删除任何说明:把'setOldClass(c(“陌生人”))'在我的陌生人生成函数之前。必须等待赏金奖励。 –
@EricLecoutre很高兴帮助! – duckmayr