Thanks, the issue was solved by adding class definitions to the zzz.R file
in the R code directory. However, this led to a new problem.

The zzz.R now contains class definition:

> setClass("myclass", contains = "list")

and  method definition for the new class, extending the generic 'show':

> setGeneric("show",function(x,...){standardGeneric("show")})
> setMethod("show", "myclass",function(x, ...) {cat("myclass object \n")})

I get two warnings. The first one:

* checking Rd files ... WARNING
Rd files with duplicated alias 'show,myclass-method':
  myclass-class.Rd show-methods.Rd

I get this one because the alias row for the method
(\alias{show,myclass-method}) is in both myclass-class.Rd file and
show-methods.Rd file (created by promptMethods function). This is likely
related to the second warning:

* checking for missing documentation entries ... WARNING
Undocumented code objects:
  show

I thought that the show method would've been documented correctly as I put
'show-methods.Rd' file in the 'man' directory. This does not seem to be the
case, however.

Any help on how I should document the extended show method in this case, or
are there some mistakes in my original definition for extended 'show'? I
could not find suitable examples from the web/mailing lists.

br
Leo


On Fri, Jul 10, 2009 at 5:37 AM, Martin Morgan <mtmorgan@fhcrc.org> wrote:

> L L wrote:
> > Dear all,
> >
> > I have been trying to create an R package. This has been successfull
> until I
> > tried to define classes.
> >
> > Currently, my procedure is the following:
> >
> > Start R, load the function and class definition
> >> tmp <- function (x) {x}
> >> setClass("rpa", contains = "list", where=topenv(parent.frame()))
> >
> > Use package skeleton to create directory structure:
> >> package.skeleton(name = "test",list=c("tmp"))
>
> I don't think package.skeleton knows to copy the class definition to the
> R files; I think you have to do that yourself -- is there a
> setClass("rpa", contains="list") instruction in the R files created by
> package.skeleton?
>
> Martin
> >
> > Edit man files, add test/NAMESPACE file with the following contents:
> >> export(tmp)
> >> exportClasses("rpa")
> >
> > Use R CMD check and R CMD build to create tarball.
> > -> No error messages.
> >
> > Start R, install the created package:
> >> install.packages("test_1.0.tar.gz",repos=NULL)
> >
> > Test the new package:
> >> require(test)
> >> my.object = new("rpa")
> >
> > This gives the error message
> >> Error in getClass(Class, where = topenv(parent.frame())) :
> >> "rpa" is not a defined class
> >
> > Any tips on how to define and export global classes in package creation?
> >
> > I also tried
> > - to replace the 'topenv(parent.frame())' with '.GlobalEnv' in setClass.
> > - place the setClass within function 'tmp'
> > - exportClasses(rpa) in the namespace (without suffixes "")
> >
> > I paged through the related mailing list discussions but could not find a
> > solution. Any tips and tricks would be worthwhile now; I guess this
> should
> > be a standard issue but it seems a bit tricky to come up with a quick
> > solution with the little programming experience that I have.
> >
> > kind regards
> > Leo Lahti
> >
> >       [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > 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.
>
>

	[[alternative HTML version deleted]]


