[R] assignment in lists
Prof Brian Ripley
ripley at stats.ox.ac.uk
Fri Jun 27 08:39:34 CEST 2003
On Fri, 27 Jun 2003, Philippe Grosjean wrote:
> Prof. Brian Ripley wrote:
> >Philippe,
>
> >as.list(NULL) is the same as list(), and that is what I think you should
> >be using in both cases.
>
> OK, thank you.
>
> >However, I do think that either both or neither of your examples should
> >work: my preference would be `neither' but as S allows both it should be
> >`either'.
>
> I agree with you, including on the fact that 'neither' should work. I would
> prefer a language that obliges to declare list components before using them.
I've altered this to work like S (and documented it).
> Experimenting a little bit more around this problem, I got that:
>
> - assigning NULL to a list entry deletes this entry from the list. OK, fine.
> Asking for:
> my.list$non.existing.item gives NULL. Thus, it is consistent. However, if I
> use this:
>
> > a <- list(item1=NULL, item2=NULL)
> > a
> $item1
> NULL
>
> $item2
> NULL
>
> - this is a strange behaviour because the previous command should have
> returned 'list()' in a. Consequently, when I reallocate NULL to either
> 'item1', or 'item2' of 'a', it deletes it:
>
> > a$item1 <- NULL
> > a
> $item2
> NULL
>
> Not an harmfull behaviour, but inconsistent with the rest.
It is in the FAQ, though.
--
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-help
mailing list