[R] S4 pass-by-value work-around?
Jeffrey Spies
jspies2008 at gmail.com
Thu Jun 19 07:26:21 CEST 2008
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_", object at uniqueCount, sep="")
object at uniqueCount <- object at uniqueCount + 1
return(retval)
})
x <- new("MyMatrix", parameters=matrix(0, 2, 2))
createUniqueName(x) # returns "unique_1"
x # x at uniqueCount 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.
More information about the R-help
mailing list