Howdy all,

I have a problem that I'd like some advice/help in solving---it has to do
with R's pass-by-value system.  I understand the issue, but am wondering if
anyone has found a working solution in dealing with it for cases when one
wants to modify an object inside of a method, specifically when working with
S4.  I'm aware that R.oo is able to deal with this using S3, but I'd really
rather stick to S4.

The basics of what I would like to do are coded below:

setClass("MyMatrix",
        representation(
                parameters="matrix",
                uniqueCount="numeric"
        ),
        prototype(
                parameters=matrix(numeric(0),0,0),
                uniqueCount=1   
        )
)

setGeneric("createUniqueName", function(object)
standardGeneric("createUniqueName"))

setMethod("createUniqueName", "MyMatrix", function(object){
        retval <- paste("unique_", [EMAIL PROTECTED], sep="")
        [EMAIL PROTECTED] <- [EMAIL PROTECTED] + 1
        return(retval)
})

x <- new("MyMatrix", parameters=matrix(0, 2, 2))
createUniqueName(x) # returns "unique_1"
x # [EMAIL PROTECTED] is still 1

I understand why this is happening, but am wondering how people in the
community have dealt with it, specifically when using S4.  Any advice would
be appreciated.  Also, I am aware that this is somewhat of a silly example,
but it should allow you to see what I'm trying to accomplish.

Thank you,

Jeff.


-- 
View this message in context: 
http://www.nabble.com/S4-pass-by-value-work-around--tp17997553p17997553.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
R-help@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.

Reply via email to