6
我在使用Roxygen的check
分配函數時遇到問題。分配功能文檔失敗R CMD CHECK
這裏有一個相當小的例子:
#' Get sp feature IDs
#' @aliases IDs IDs.default IDs.SpatialPolygonsDataFrame IDs<- IDs<-.SpatialPolygonsDataFrame
#' @param x The object to get the IDs from or assign to
#' @param value The character vector to assign to the IDs
#' @param \dots Pass-alongs
#' @author Ari B. Friedman
#' @rdname IDs
IDs <- function(x,...) {
UseMethod("IDs",x)
}
#' @method IDs default
#' @S3method IDs default
#' @rdname IDs
IDs.default <- function(x,...) {
stop("Currently only SpatialPolygonsDataFrames are supported.")
}
#' @method IDs SpatialPolygonsDataFrame
#' @S3method IDs SpatialPolygonsDataFrame
#' @rdname IDs
IDs.SpatialPolygonsDataFrame <- function(x,...) {
vapply(slot(x, "polygons"), function(x) slot(x, "ID"), "")
}
#' Assign sp feature IDs
#' @rdname IDs
"IDs<-" <- function(x, value) {
UseMethod("IDs<-",x)
}
#' @method IDs<- SpatialPolygonsDataFrame
#' @S3method IDs<- SpatialPolygonsDataFrame
#' @rdname IDs
"IDs<-.SpatialPolygonsDataFrame" <- function(x, value) {
spChFIDs(x,value)
}
當我運行check
:
* checking for code/documentation mismatches ... WARNING
Codoc mismatches from documentation object 'IDs':
IDs<-
Code: function(x, value)
Docs: function(x, value, value)
IDs<-.SpatialPolygonsDataFrame
Code: function(x, value)
Docs: function(x, value, value)
我不明白的地方,第二value
的來源。我試圖根據這樣一種理論來消除@param value
,即Roxygen可能自動爲分配函數創建一個條目,但這並不能消除(x,value,value)
定義,併產生一個新的警告,抱怨我沒有定義value
。
這裏產生的.Rd
的相關部分:
\usage{
IDs(x, ...)
\method{IDs}{default} (x, ...)
\method{IDs}{SpatialPolygonsDataFrame} (x, ...)
IDs(x, value) <- value
\method{IDs}{SpatialPolygonsDataFrame} (x, value) <-
value
}
我沒有看到(x, value, value)
簽名check
索賠是存在的。
這是一個S3功能,但它在S4對象上運行。我認爲,這仍然應該是S3。但如果不是這樣的話,我可能會使用@S3method
這個問題。
幫助?
這可能是因爲在roxygen2 S4支持很爛:(你可以嘗試實驗[roxygen3(http://github.com/hadley/roxygen3/),這將在某種程度上被合併到roxygen2 – hadley
這似乎是相關的:http://stackoverflow.com/questions/8873514/documenting-setter-functions-with-roxygen – Dason