Search code examples
rfunctiondocumentationsquare-bracketrd

Documentation of squared bracket `[` function


I have a function in R that looks somewhat like this:

setMethod('[', signature(x="stack"),definition=function(x,i,j,drop){
  new('class', as(x, "SpatialPointsDataFrame")[i,]) })

I use it to get a single element out of a stacked object. For the package I'm building I need a .Rd file to document the function. I stored it as [.Rd but somehow the R CMD check does not see this. It returns:

Undocumented S4 methods:  generic '[' and siglist 'MoveStack,ANY,ANY'

The [.Rd file starts with these lines:

\name{[}    
\alias{[}
\alias{[,stack,ANY,ANY-method}    
\docType{methods}    
\title{Returns an object from a stack}    
\description{Returning a single object}    
\usage{
  \S4method{\[}{stack,ANY,ANY}(x,i,y,drop)
}

Any idea how I make R CMD check aware of this file?


Solution

  • If you look at the source code of the sp package, for example SpatialPolygons-class.Rd, the Methods section:

    \section{Methods}{
    Methods defined with class "SpatialPolygons" in the signature:
      \describe{
        \item{[}{\code{signature(obj = "SpatialPolygons")}: select subset of (sets of) polygons; NAs are not permitted in the row index}
        \item{plot}{\code{signature(x = "SpatialPolygons", y = "missing")}: 
        plot polygons in SpatialPolygons object}
        \item{summary}{\code{signature(object = "SpatialPolygons")}: summarize object}
        \item{rbind}{\code{signature(object = "SpatialPolygons")}: rbind-like method}
      }
    }
    

    method for [ is defined.

    Name and class of the file are

    \name{SpatialPolygons-class}
    \alias{[,SpatialPolygons-method}
    

    If you look at the help page for ?SpatialPolygons you should see

    > Methods
    > 
    > Methods defined with class "SpatialPolygons" in the signature:
    > 
    > [ signature(obj = "SpatialPolygons"): select subset of (sets of)
    > polygons; NAs are not permitted in the row index
    > 
    

    So I would venture a guess that if you specify a proper (ASCII named) file name, give it an alias as in the above example, you should be fine.