On Mon, 23 Feb 2015, Ramiro Barrantes wrote:

Thank you for pointing this out. I had no idea about the distinction but there are some good references on the matter (http://www.r-bloggers.com/packages-v-libraries-in-r/). I am pasting the corrected version below, any suggestions appreciated:



I have a package that I created that defines a parent class, assayObject.


I created other classes that inherit from it, say assayObjectDemo. Each one of those classes I wanted to make in its own directory separate from where the assayObject is defined (there are reasons for that).


But now if I do:

library(assayObject)  #<--- where parent object is defined
source("assayObjectDemo.R")

where assayObjectDemo.R is just:

setClass("assayObjectDemo",contains="assayObject")
createDemoAssayObject <- function() {
 df <- data.frame()
 assay<-new(Class="assayObjectDemo")
 assay
}

I get:

Error in reconcilePropertiesAndPrototype(name, slots, prototype, superClasses,  
:
 no definition was found for superclass “assayObject” in the specification of 
class “assayObjectDemo”

What can I do?


Start with a reproducible example. Here is one:

  library(Matrix)
  tmpf <- tempfile(fileext=".R")
  cat('setClass("MatrixDemo",contains="Matrix")',file=tmpf)
  source(tmpf)
  slotNames("MatrixDemo")

And it produces the expected output without error:

 [1] "Dim"      "Dimnames"

Since this works fine for a widely used package and fails for your
(unspecified) package, I suspect there is a problem with your package.

If I had to guess, I'd say it is a NAMESPACE issue. Be sure your
exportClasses directive is correctly formed per Section 1.5.6
"Namespaces with S4 classes and methods" of R-exts.

r-devel might be a better venue for this discussion.

HTH,

Chuck
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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