From cstrato at aon.at  Fri Mar 16 23:35:06 2007
From: cstrato at aon.at (cstrato)
Date: Fri, 16 Mar 2007 23:35:06 +0100
Subject: [Rd] Problems with package containing S4 classes
In-Reply-To: <D023A1FD-2388-40C3-AC7D-A20773326A62@jhsph.edu>
References: <45FB045E.3090909@aon.at>
	<72DA1101-B6C5-4DB7-A9F8-2CC091D8AC7E@jhsph.edu>
	<45FB0E6D.3010803@aon.at>
	<D023A1FD-2388-40C3-AC7D-A20773326A62@jhsph.edu>
Message-ID: <45FB1B9A.3040406@aon.at>

Dear Benilton

Yes, but the error disappears only when I define it twice.

For my package I create three files:

1. MyClasses.R:
Here I define the classes only using
setClass("baseClass")
setClass("derivedClass")

2. methods.baseClass.R
Here I define the methods for baseClass
setGeneric("export", function(object,...) standardGeneric("export"))
setMethod("export", "baseClass", export.baseClass);

3. methods.derivedClass.R
Here I define the methods for derivedClass
setGeneric("export", function(object,...) standardGeneric("export"))
setMethod("export", "derivedClass", export.derivedClass);

As you see, I need to define setGeneric twice, otherwise I get the error.
It is not clear to me, why this is the case?

I know, that BioBase has a file AllGeneric.R, but I would like to define
the generics in the respective methods files.

Best regards
Christian

Benilton Carvalho wrote:
> do you have a generic for 'export'?
>
> On Mar 16, 2007, at 5:38 PM, cstrato wrote:
>
>> Dear Benilton
>>
>> Thank you, now my package works.
>>
>> Do you have an explanation for my second problem:
>>
>> * Installing *source* package 'mytest' ...
>> ** R
>> ** save image
>> Error in setMethod("export", "derivedClass", export.derivedClass) :
>>        no existing definition for function "export"
>> Error: unable to load R code in package 'mytest'
>> Execution halted
>>
>> What may be the reason for this error?
>>
>> Best regards
>> Christian
>>
>>



[Rd] Problems with package containing S4 classes
cstrato