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@list,MoreArgs=list(...),simplify=FALSE)
        x@list=newlist
        return(x)
}

Thoughts?

--j


______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to