On 21/04/2010 7:00 AM, Albert-Jan Roskam wrote:> Hi,
>
> I'm new to R and S4 classes. I defined a class with two methods
(myMethod1 and myMethod2). I want to call myMethod1 within myMethod2. Why does
the code below not work? The name 'myMethod1' doesn't appear to have
meaning inside myMethod2, even though the two methods belong to the same class.
>
>
> setClass(Class="SomeClass",
> representation=representation(
> amount="numeric")
> )
> setGeneric (name="myMethod1",
> def=function(object){standardGeneric("myMethod1")}
> )
> setMethod(f = "myMethod1",
> signature = "SomeClass",
> definition=function(object) {print(object at amount)}
> )
> setGeneric(name="myMethod2",
> def=function(object){standardGeneric("myMethod2")}
> )
> setMethod(f = "myMethod2",
> signature = "SomeClass",
> definition=function(object) {print(myMethod1 * 2)}
>
You should have used myMethod1(object), not just myMethod1.
Duncan Murdoch
> )
> instance <- new(Class="SomeClass", amount=10)
> myMethod1(instance) # prints '10'
> myMethod2(instance) # ERROR: is supposed to print '20'
>
> Thank you in advance for your help!
>
> Cheers!!
> Albert-Jan
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> All right, but apart from the sanitation, the medicine, education, wine,
public order, irrigation, roads, a fresh water system, and public health, what
have the Romans ever done for us?
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>
>
> [[alternative HTML version deleted]]
>
>
> ------------------------------------------------------------------------
>
> ______________________________________________
> R-help at 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.
>