[R] Changing the value of an object's slot in a method
tofesi@web.de
tofesi at web.de
Fri Sep 3 15:27:48 CEST 2004
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Received-SPF: none (hypatia: domain of tofesi at web.de does not designate permitted sender hosts)
X-Virus-Scanned: by amavisd-new at stat.math.ethz.ch
X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on hypatia.math.ethz.ch
X-Spam-Level:
X-Spam-Status: No, hits=0.2 required=5.0 tests=BAYES_50,NO_REAL_NAME autolearn=no version=2.63
Hi all,
I want to modify the value of an object's slot from within a method, as in the example below:
setClass("MyClass", representation(flag="numeric"))
if( !isGeneric("flipFlag") )
setGeneric("flipFlag", function(object)
standardGeneric("flipFlag"))
setMethod("flipFlag","MyClass",
function(object) {
# flips object at flag from 0 to 1, or from 1 to 0
})
This should work in a similar way as in other object-oriented languages where it would be written as 'object.flipFlag()'. However, there seems to be a problem with the call-by-value semantics of R, and the updated value is lost on leaving the function.
The following two options are not suitable for our task:
1.) Directly assigning to 'flag' via a method created by 'setReplaceMethod'. The method 'flipFlag' should require no parameters.
2.) Returning a new object, so that the user has to assign the new object to the old variable.
Thanks in advance,
Tobi.
________________________________________________________________
Verschicken Sie romantische, coole und witzige Bilder per SMS!
More information about the R-help
mailing list