Skip to content
Prev 269522 / 398503 Next

setMethods/setGeneric problem when R CMD CHECK'ing a package

R-helpers:

I'm trying to build a package, but I'm a bit new to the whole S3/S4
methods concept.  I'm trying to add a new definition of the zoo
function "as.yearmon", but I'm getting the following error when it
gets to this point during a package install:

***

R CMD INSTALL STARStools
* installing to library
?/Library/Frameworks/R.framework/Versions/2.13/Resources/library?
WARNING: omitting pointless dependence on 'R' without a version requirement
* installing *source* package ?STARStools? ...
** R
** inst
** preparing package for lazy loading
Loading required package: sp
raster version 1.9-5 (28-July-2011)
Geospatial Data Abstraction Library extensions to R successfully loaded
Loaded GDAL runtime: GDAL 1.8.0, released 2011/01/12
Path to GDAL shared files:
/Library/Frameworks/GDAL.framework/Versions/1.8/Resources/gdal
Loaded PROJ.4 runtime: Rel. 4.7.1, 23 September 2009
Path to PROJ.4 shared files: (autodetected)

Attaching package: 'zoo'

The following object(s) are masked from 'package:base':

    as.Date

Creating a new generic function for "as.Date" in "STARStools"
Creating a new generic function for "as.list" in "STARStools"
Error in setGeneric(f, where = where) :
  must supply a function skeleton, explicitly or via an existing function
Error : unable to load R code in package 'STARStools'
ERROR: lazy loading failed for package ?STARStools?
* removing ?/Library/Frameworks/R.framework/Versions/2.13/Resources/library/STARStools?
* restoring previous
?/Library/Frameworks/R.framework/Versions/2.13/Resources/library/STARStools?

***

# Note that these "require" statements do not appear in the code, but
appear in the DESCRIPTION file:
require("sp")
require("zoo")

# Here are the class definitions (filename AAAclassdefinitions.R):
setClass("SpatialPointsDataFrameList",representation(list="list"),contains=c("SpatialPointsDataFrame"))
setClass("SpatialPointsDataFrameListZoo",contains=c("SpatialPointsDataFrameList"))

# And here is where it is getting hung up. filename
"as.yearmon.SpatialPointsDataFrameListZoo_SpatialPointsDataFrameListZoo.R"

setMethod("as.yearmon",
    signature(x = "SpatialPointsDataFrameListZoo"),
	as.yearmon.SpatialPointsDataFrameListZoo
)

# Filename "as.yearmon.SpatialPointsDataFrameListZoo.R"
as.yearmon.SpatialPointsDataFrameListZoo=function(x,...)
{
	newlist=mapply(zoo:::as.yearmon,x at list,MoreArgs=list(...),simplify=FALSE)
	x at list=newlist
	return(x)
}

Thoughts?

--j