記錄時使用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