[Rd] How to overload the assignment operator?

Matthias Kohl Matthias.Kohl at stamats.de
Tue Nov 13 14:52:53 CET 2007


are you looking for "setReplaceMethod"?
hth
Matthias

Jens Oehlschlägel wrote:
> Dear all,
>
> what is the proper way to make the assignment operator generic and define methods depending on the class of the assigned value?
>
> Best regards
>
>
> Jens Oehlschlägel
>
> P.S. I vaguely remember that this was possible in S+. In R I tried to no avail: 
>
>   # using this like h<-1:3 gives Error: in `<-.default`(h, 1:3) : invalid (do_set) left-hand side to assignment
>   "<-.default" <- get("<-") 
>
>   # using this does fail on subassignments like: h <- 1:3 ; h[1] <- 7 (h still is 1:3)
>   "<-.default" <- function(x, value){
>     assign(deparse(substitute(x)), value, parent.frame())
>     invisible(x)
>   }
>
>   # this seems to work
>   "<-" <- function(x, value){
>     UseMethod("<-", value)
>   }
>
>   # whenever the assigned value has class 'ff' I want to do execute something like
>   "<-.ff" <- function(x, value){
>     y <- clone(value)
>     assign(deparse(substitute(x)), y, parent.frame())
>     y
>   }
>
>
>   
>> version
>>     
>                _                           
> platform       i386-pc-mingw32             
> arch           i386                        
> os             mingw32                     
> system         i386, mingw32               
> status                                     
> major          2                           
> minor          6.0                         
> year           2007                        
> month          10                          
> day            03                          
> svn rev        43063                       
> language       R                           
> version.string R version 2.6.0 (2007-10-03)
>
> --
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



More information about the R-devel mailing list