[Rd] issue with [[<-Call
Prof Brian Ripley
ripley at stats.ox.ac.uk
Fri Dec 26 15:32:11 CET 2008
On Fri, 26 Dec 2008, Therneau, Terry M., Ph.D. wrote:
> Brian,
> Thanks for the comments.
>
> -- I agree that the vector form is more compact. I was using a loop
> because I found it to be even more transparent to the class. For a one
> time task such as this efficiency is not an issue.
> -- I'll make use of eval.parent(). I hadn't yet stumbled on that
> -- The code in lm() is almost exactly my "other approach"! (I doubt
> convergent evolution - I must have noticed this example at some past
> point).
>
> I was reasoning in parallel to lists
>> temp <- list(a=1:3)
>> temp[['b']] <- 5:6
>> temp
> $a
> [1] 1 2 3
> $b
> [1] 5 6
>
> and assumed that this should work for call objects. The informal
> "underneath it all, all the language objects are lists" idea, which I
> think I absorbed from one of the original Bell Labs books. I leave it
> to the core team to decide if this should be 'fixed'.
Yes, that is true in S, but in R they are pairlists. The reason [<- works
is that it converts the pairlist to a list and back again. Names
(stricty, 'tags') on pairlists are something of a pain, but I have
already fixed up this case: some more complex ones remain unfixed.
>
> Terry T.
>
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-devel
mailing list