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

From: Uwe Ligges <ligges_at_statistik.uni-dortmund.de>
Date: Mon 28 Mar 2005 - 00:27:48 EST

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@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@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@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



R-help@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 Received on Mon Mar 28 00:35:13 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:30:56 EST