[Rd] surprising behaviour of names<-

Wacek Kusnierczyk Waclaw.Marcin.Kusnierczyk at idi.ntnu.no
Thu Mar 12 10:08:08 CET 2009


Berwin A Turlach wrote:
> On Wed, 11 Mar 2009 20:29:14 +0100
> Wacek Kusnierczyk <Waclaw.Marcin.Kusnierczyk at idi.ntnu.no> wrote:
>
>   
>> Simon Urbanek wrote:
>>     
>>> Wacek,
>>>
>>> Peter gave you a full answer explaining it very well. If you really
>>> want to be able to trace each instance yourself, you have to learn
>>> far more about R internals than you apparently know (and Peter
>>> hinted at that). Internally x=1 an x=c(1) are slightly different in
>>> that the former has NAMED(x) = 2 whereas the latter has NAMED(x) =
>>> 0 which is what causes the difference in behavior as Peter
>>> explained. The reason is that c(1) creates a copy of the 1 (which
>>> is a constant [=unmutable] thus requiring a copy) and the new copy
>>> has no other references and thus can be modified and hence NAMED(x)
>>> = 0.
>>>       
>> simon, thanks for the explanation, it's now as clear as i might
>> expect.
>>
>> now i'm concerned with what you say:  that to understand something
>> visible to the user one needs to "learn far more about R internals
>> than one apparently knows".  your response suggests that to use r
>> without confusion one needs to know the internals, 
>>     
>
> Simon can probably speak for himself, but according to my reading he
> has not suggested anything similar to what you suggest he suggested. :)
>   

so i did not say *he* suggested this.  'your response suggests' does
not, on my reading, imply any intention from simon's side.  but it's you
who is an expert in (a dialect of) english, so i won't argue.


>   
>> and this would be a really bad thing to say.. 
>>     
>
> No problems, since he did not say anything vaguely similar to what you
> suggest he said.
>   

let's not depart from the point.

vQ



More information about the R-devel mailing list