Hi the list,

I am writing a function in which I need to affect a variable on a higher
level. My fnction could be:

++++++++++++++++++
fooBis <- function(x){
      nameObject <- deparse(substitute(x))
      print(nameObject)
      assign(nameObject,4,envir=parent.frame())
}
> fooBis(e)
[1] "e"
> e
[1] 4
-----------------

(to simplify, this fnction can affect only the number 4. But it does it in
the parent frame).

My problem is that I use S4 programming. So the code becomes:

+++++++++++++
setGeneric("foo",function(x){standardGeneric("foo")})
setMethod("foo","ANY",
    function(x){
      nameObject <- deparse(substitute(x))
      print(nameObject)
      assign(nameObject,4,envir=parent.frame())
   }
)
-----------
But it does not work since the definition of foo is now:

+++++++++
> foo
nonstandardGenericFunction for "foo" defined from package ".GlobalEnv"
function (x) 
{
    standardGeneric("foo")
}
<environment: 0x125b7c0c>
-----------------
So how can I solve this problem? Is it possible to assign a value to a
variable on the upper level using S4?

Sincerely
Christophe


--
View this message in context: 
http://r.789695.n4.nabble.com/deparse-substitute-then-assign-in-a-S4-methods-tp4356748p4356748.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