Is there a simple way to assign values to S4 slots from within a function? Doing this doesn't work:> assign_slot<-function(x){assign("OBJECT at slot",x,envir=parent.env(environment()) }>assign_slot(x)All I get from this is a new object with the name OBJECT at slot, the slot assignment of OBJECT doesn't change. I have thought about solutions such as eval(parse()) to pull this off, but would prefer not to ugly up the code. Thoughts?? I have searched rather thoroughly, but it is possible I overlooked something. If I did, apologies. -Brian -- View this message in context: http://r.789695.n4.nabble.com/S4-Slot-assignment-within-function-tp3572077p3572077.html Sent from the R devel mailing list archive at Nabble.com.
On 11-06-03 5:03 PM, mcguirebc wrote:> Is there a simple way to assign values to S4 slots from within a function? > > Doing this doesn't work: > >> assign_slot<-function(x){ > > assign("OBJECT at slot",x,envir=parent.env(environment()) > > } > >> assign_slot(x) > > All I get from this is a new object with the name OBJECT at slot, the slot > assignment of OBJECT doesn't change. > > I have thought about solutions such as eval(parse()) to pull this off, but > would prefer not to ugly up the code. > > Thoughts?? > > I have searched rather thoroughly, but it is possible I overlooked > something. If I did, apologies.I haven't tried this, but I would expect OBJECT at slot <<- x to work, assuming OBJECT already exists somewhere outside the function but in its environment. Duncan Murdoch
On 06/03/2011 02:03 PM, mcguirebc wrote:> Is there a simple way to assign values to S4 slots from within a function? > > Doing this doesn't work: > >> assign_slot<-function(x){ > > assign("OBJECT at slot",x,envir=parent.env(environment()) > > } > >> assign_slot(x) > > All I get from this is a new object with the name OBJECT at slot, the slot > assignment of OBJECT doesn't change. > > I have thought about solutions such as eval(parse()) to pull this off, but > would prefer not to ugly up the code. > > Thoughts?? > > I have searched rather thoroughly, but it is possible I overlooked > something. If I did, apologies.Maybe you're looking for ?ReferenceClasses rather then S4 classes? Martin> > -Brian > > > > > > > > -- > View this message in context: http://r.789695.n4.nabble.com/S4-Slot-assignment-within-function-tp3572077p3572077.html > Sent from the R devel mailing list archive at Nabble.com. > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel-- Computational Biology Fred Hutchinson Cancer Research Center 1100 Fairview Ave. N. PO Box 19024 Seattle, WA 98109 Location: M1-B861 Telephone: 206 667-2793