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]]