Again, R has a different paradigm from what you're used to. R is a
'pass by value' language. So 'obj' inside the method is a *copy* of
testObj, and your assignment changes the 'value' slot of the copy. An
R way of doing this might be

setMethod("test", signature=c("connect"),
  function( obj ) {
    [EMAIL PROTECTED] <- [EMAIL PROTECTED] / 2
    ## and other manipulations...
    obj
})

testObj <- test( testObj )

I 'know' these things by reading Chambers' Programming with Data, and
by looking at exsiting code (ok, and maybe some other ways, too
;). There are some example packages suggested in this thread

https://stat.ethz.ch/pipermail/r-devel/2005-November/035370.html

If you have an R source distribution, look in, for instance,

<PATH-TO-R-SRC>/src/library/stats4/R

At the R command prompt, do something like

library(stats4)
library(help=stats4)
?"update-methods"
getMethods("update")

A warning, I guess, is that looking at complicated code (and the help
pages for the methods package) can be confusing without the kind of
foundation that Chambers' book provides. Maybe others on the list will
provide some hints for introductory documentation on S4 classes and
methods.

Hope that's enough to get you going!

Martin


"Dominik Locher" <[EMAIL PROTECTED]> writes:

> Hi Martin
>
> Thanks a lot for your short example. If you input
>
> test(testObj)
>
> it will return
>
> 22
>
> However, how is it possible that the value will be saved in the object
>
> i.e. (does not work currently!!??)
> setMethod("test", signature=c("connect"),
>   function( obj ) { [EMAIL PROTECTED]<[EMAIL PROTECTED] / 2 })
>
> so that test(testObj) will save a new value to [EMAIL PROTECTED] or 
>
> [EMAIL PROTECTED] will return 22.
>
> Thanks.
> Nik
>
> ______________________________________________
> R-help@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to