[R] Is there a diferent way to do this?

Uwe Ligges ligges at statistik.uni-dortmund.de
Sun Mar 27 16:27:48 CEST 2005


Gilvan Justino wrote:
> Hi,
>  
> I started creating a small class but I'm courious about how it is working.
>  
> To create a instance of my class "Partri" I write this at Rgui:
> x <- new("Partri", name="Gilvan")
>  
> and to change the slot "name" of this instance, I write:
> setName(x, newname="Justino")
>  
> It is not working, because when I type "x" at Rgui, it shows the initial value, which was "Gilvan". What I am doing wrong?
>  
> I'll appreciate any king of help!
> Gilvan
>  
>  
> # Classe para representar um parâmetro
> setClass("Partri",
>    # parâmetros
>    representation( name="character"),
>    # seção de inicialização
>    prototype( name="undefined name" )
> )
> 
> setGeneric("setName",
>            function(object, newname,...)
>            standardGeneric("setName"))
> setMethod("setName", 
>           signature(object="Partri",newname="character"),        
>           function(object, newname)
>           {
>             object at name = newname


You set the "name" in the environment of the method, but you don't 
assign it to the environment that you seem to expect erroneously. To see 
that it works, simply insert

              print(object at name)

Instead, you want to write some non-standard replacement function. See 
?setReplaceMethod and friends (you might want to take a look into the 
green book as well).

Uwe Ligges




>           }
>           )




> 
> 		
> ---------------------------------
> 
> ora!
> 	[[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




More information about the R-help mailing list