While installing my small package, I met a tricky problem. For clarity, let me explain it with the following simplified example.
In ~/pkg/R/aclass.R, setClass(“aclass”, contains=”bclass”, representation(i=”numeric”)) In ~/pkg/R/bclass.R, setClass(“bclass”, representation(j=”numeric”)) After building a “pkg” package, the file pkg.R in R directory has: setClass(“aclass”, contains=”bclass”, representation(i=”numeric”)) setClass(“bclass”, representation(j=”numeric”)) When combining the source files, R seems to generate one new source file based on alphabetic orders of file names. In this case, loading the "pkg" package failed with the following error message. > library(pkg) Error in methodsPackageMetaName("C", name) : The name of the object (e.g,. a class or generic function) to find in the meta-data must be a single string (got an object of class "NULL") > traceback() 12: methodsPackageMetaName("C", name) 11: classMetaName(Class) 10: getClassDef(Class, where) 9: getClass(cl, TRUE) 8: .validDataPartClass(clDef, name) 7: reconcilePropertiesAndPrototype(name, slots, prototype, superClasses, where) 6: makeClassRepresentation(Class, properties, superClasses, prototype, package, validity, access, version, sealed, where = where) 5: setClass("aclass", contains = "bclass", representation(i = "numeric")) 4: eval(expr, envir, enclos) 3: eval(i, envir) 2: sys.source(codeFile, loadenv, keep.source = keep.source) 1: library(pkg) I suspect the reason is that class “bclass” is not defined when class “aclass” is defined. To maintain source files effectively, I don’t want to combine two files into one file or change their file names. Surely, there may be elegant solutions for this somewhat trivial issue. But, I can’t find it. Can you help me? Thanks. Daehyok Shin ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html