It is excellent. thanks!

On Sun, Nov 10, 2013 at 12:49 PM, Martin Morgan <mtmor...@fhcrc.org> wrote:

> On 11/09/2013 11:31 PM, Hadley Wickham wrote:
>
>> Modelling a mutable entity, i.e. an account, is really a perfect
>> example of when to use reference classes.  You might find the examples
>> on http://adv-r.had.co.nz/OO-essentials.html give you a better feel
>> for the strengths and weaknesses of R's different OO systems.
>>
>
> Reference classes provide less memory copying and a more familiar
> programming paradigm but not necessarily fantastic performance, as
> illustrated here
>
> http://stackoverflow.com/questions/18677696/stack-
> class-in-r-something-more-concise/18678440#18678440
>
> and I think elsewhere on this or the R-devel list (sorry not to be able to
> provide a more precise recollection).
>
> Martin
>
>
>
>
>> Hadley
>>
>> On Sat, Nov 9, 2013 at 9:31 AM, daniel schnaider <dschnai...@gmail.com>
>> wrote:
>>
>>> It is my first time programming with S4 and I can't get the setter
>>> fuction
>>> to actually change the value of the slot created by the constructor.
>>>
>>> I guess it has to do with local copy, global copy, etc. of the variable -
>>> but, I could't find anything relevant in documentation.
>>>
>>> Tried to copy examples from the internet, but they had the same problem.
>>>
>>> # The code
>>>      setClass ("Account" ,
>>>                 representation (
>>>                 customer_id = "character",
>>>                 transactions = "matrix")
>>>      )
>>>
>>>
>>>      Account <- function(id, t) {
>>>              new("Account", customer_id = id, transactions = t)
>>>              }
>>>
>>>
>>>      setGeneric ("CustomerID<-", function(obj,
>>> id){standardGeneric("CustomerID<-")})
>>>      setReplaceMethod("CustomerID", "Account", function(obj, id){
>>>          obj@customer_id <- id
>>>          obj
>>>          })
>>>
>>>          ac <- Account("12345", matrix(c(1,2,3,4,5,6), ncol=2))
>>>          ac
>>>          CustomerID <- "54321"
>>>          ac
>>>
>>> #Output
>>>          > ac
>>>          An object of class "Account"
>>>          Slot "customer_id":
>>>          [1] "12345"
>>>
>>>          Slot "transactions":
>>>               [,1] [,2]
>>>          [1,]    1    4
>>>          [2,]    2    5
>>>          [3,]    3    6
>>>
>>> # CustomerID is value has changed to 54321, but as you can see it does't
>>>          > CustomerID <- "54321"
>>>          > ac
>>>          An object of class "Account"
>>>          Slot "customer_id":
>>>          [1] "12345"
>>>
>>>          Slot "transactions":
>>>               [,1] [,2]
>>>          [1,]    1    4
>>>          [2,]    2    5
>>>          [3,]    3    6
>>>
>>>
>>> Help!
>>>
>>>          [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> 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.
>>>
>>
>>
>>
>>
>
> --
> Computational Biology / Fred Hutchinson Cancer Research Center
> 1100 Fairview Ave. N.
> PO Box 19024 Seattle, WA 98109
>
> Location: Arnold Building M1 B861
> Phone: (206) 667-2793
>



-- 
Daniel Schnaider

SP Phone:  +55-11-9.7575.0822


d...@scaigroup.com
skype dschnaider
Linked In: http://www.linkedin.com/in/danielschnaider

w <http://www.arkiagroup.com/>ww.scaigroup.com

Depoimentos de clientes <http://www.scaigroup.com/Projetos/depoimentos>

Casos de Sucesso & ReferĂȘncias <http://www.scaigroup.com/Projetos>

SCAI Group no Facebook <http://facebook.scaigroup.com/>

SCAI Group no Twitter <http://twitter.scaigroup.com/>

SCAI Group no Google Plus <http://plus.scaigroup.com/>

        [[alternative HTML version deleted]]

______________________________________________
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