[R] Question about setReplaceMethod

Martin Morgan mtmorgan at fhcrc.org
Fri May 25 04:35:39 CEST 2007


Hi Adschai --

You'll want to return the value whose slot you have modified:

setReplaceMethod("setX", "foo",
                 function(this,value) {
                     this at x <- value
                     this               # add this line
                 })

Martin

adschai at optonline.net writes:

> Hi 
>  
> I have the code like I show below. The problem here is that I have a
> setReplacementMethod to set the value of my class slot. However,
> this function doesn't work when I call it within another function
> definition (declared by setMethod) of the same class. I do not
> understand this behavior that much. I'm wondering how to make this
> work? Any help would be really appreciated. Thank you.
>  
> setClass("foo", 
> representation(x="data.frame", y="character"))
> setGeneric("setX<-", function(this, value), standardGeneric("setX<-"))
> setReplaceMethod("setX", "foo",
> function(this,value) {
> this at x <- value
> })
> setGeneric("generateFrame", function(this), standardGeneric("generateFrame"))
> setReplaceMethod("generateFrame", "foo",
> function(this) {
> frame <- read.csv(file="myfile.csv", header=T) # read some input file
> this at x <- frame # this doesn't replace the value for me
> setX(this) <- frame # this doesn't replace the value for me
> frame # instead I have to return the frame object
> })
> foo <- function(x,y) {
> objFoo <- new("foo", x=data.frame(NULL), y="")
> frame <- generateFrame(objFoo) # after this point, nothing got assigned to objFoo at x
> setX(objFoo) <- frame # this will work (why do I have to duplicate this??) 
> }
> - adschai
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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
> and provide commented, minimal, self-contained, reproducible code.

-- 
Martin Morgan
Bioconductor / Computational Biology
http://bioconductor.org



More information about the R-help mailing list