Jonathan Greenberg
2011-Aug-24 08:30 UTC
[R] 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 -- Jonathan A. Greenberg, PhD Assistant Project Scientist Center for Spatial Technologies and Remote Sensing (CSTARS) Department of Land, Air and Water Resources University of California, Davis One Shields Avenue Davis, CA 95616 Phone: 415-763-5476 AIM: jgrn307, MSN: jgrn307 at hotmail.com, Gchat: jgrn307
Uwe Ligges
2011-Aug-24 08:57 UTC
[R] setMethods/setGeneric problem when R CMD CHECK'ing a package
On 24.08.2011 10:30, Jonathan Greenberg wrote:> 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:Thhis seesm more appropiate for the R-devel rather than the R-help list. Anyway, see below.> *** > > 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")??? Not valid in the DESCRIPTION file. Either use this in your code or import from the corresponding Namespaces which you will have to do anyway for the next R release.> # 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 > )You try to register the method pointing to a function definition that does not exist at this point (since you define it below). Just move the definition up. Uwe Ligges> > # 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 >
Reasonably Related Threads
- Preserving both yearmon and numeric data in an xls object
- ggplot & annotating charts
- Creating a "shifted" month (one that starts not on the first of each month but on another date)
- differing behaviour between xts (0.6-7) and zoo (1.5-8)
- extract certain months toyears (zoo)