Hi the list,
I define a method that want to change an object without assignation (foo(x) and not x<-foo(x)) using deparse and assign. But when the argument of the method does not match *exactly* with the definition of the generic function, assign does not work...
Anything wrong?

Christophe

#------ Does not work ------#
setGeneric("foo1",function(x,...){standardGeneric("foo1")})

setMethod(f="foo1",signature="numeric",definition=
   function(x,y=1,...){
       nameX<-deparse(substitute(x))
       x <- x^2
       assign(nameX,x,envir=parent.frame())
   }
)

e <- 3
foo1(e,y=5)
cat(e)


#------ Does work ------#
setGeneric("foo2",function(x,...){standardGeneric("foo2")})

setMethod(f="foo2",signature="numeric",definition=
   function(x,...){
       nameX<-deparse(substitute(x))
       x <- x^2
       assign(nameX,x,envir=parent.frame())
   }
)

e <- 3
foo2(e,y=5)
cat(e)

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to