2012-11-10 11 views
6

विफल रहता है मुझे check Roxygen के साथ असाइनमेंट फ़ंक्शन के साथ समस्या हो रही है।असाइनमेंट फ़ंक्शन प्रलेखन आरएमडी चेक

यहाँ एक काफी कम से कम उदाहरण है:

#' 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 दावों है।

यह एक एस 3 फ़ंक्शन है लेकिन यह एस 4 ऑब्जेक्ट पर चल रहा है। मुझे लगता है कि यह अभी भी एस 3 बनाना चाहिए, मुझे लगता है। लेकिन अगर ऐसा नहीं हो सकता है कि @S3method का मेरा उपयोग समस्या है।

मदद?

+5

यह शायद इसलिए है क्योंकि roxygen2 में एस 4 समर्थन बेकार है :(आप कोशिश कर सकते हैं प्रयोगात्मक [roxygen3] (http://github.com/hadley/roxygen3/) जो में कुछ बिंदु पर roxygen2 में वापस विलय हो जाएगा भविष्य। – hadley

+0

यह संबंधित प्रतीत होता है: http://stackoverflow.com/questions/8873514/documenting-setter-functions-with-roxygen – Dason

उत्तर

4

यह इसके बारे में जाने के लिए एक हैकिश तरीका है, लेकिन ऐसा लगता है कि जिस तरह से roxygen इसे संभालता है वह अभी भी समय के लिए टूटा हुआ है (LINK)। लेकिन आप सीधे उपयोग अनुभाग को अपनी roxygen टिप्पणियों में सीधे जोड़ सकते हैं।

#' Assign sp feature IDs 
#' @rdname IDs 
#' @usage IDs(x) <- value 
"IDs<-" <- function(x, value) { 
    UseMethod("IDs<-",x) 
} 

#' @method IDs<- SpatialPolygonsDataFrame 
#' @S3method IDs<- SpatialPolygonsDataFrame 
#' @rdname IDs 
#' @usage IDs(x) <- value 
"IDs<-.SpatialPolygonsDataFrame" <- function(x, value) { 
    spChFIDs(x,value) 
} 
संबंधित मुद्दे