[Rd] Assigning a zero length vector to a list (PR#8157)
Duncan Murdoch
murdoch at stats.uwo.ca
Mon Sep 26 15:05:47 CEST 2005
On 9/26/2005 7:34 AM, jussi.jousimo at ktl.fi wrote:
> Full_Name: Jussi Jousimo
> Version: 2.2.0 beta
> OS: Windows XP
> Submission from: (NULL) (193.167.195.60)
>
>
> I'm trying to assign a zero length vector to a list:
>
> x<-numeric()
> length(x)
> foo<-list()
> foo$bar[[1]]<-x
> length(foo$bar[[1]])
> foo
>
> But in the list this vector turns out to be length one with random content.
> x<-character() makes R to crash.
After foo<-list(), foo$bar is NULL, so we can simplify this.
Here's a simpler version:
# These work, which is a bit of a surprise, but there is some
inconsistency: one x becomes a list, the other is numeric:
> x <- NULL
> x[[1]] <- 1:10
> x
[[1]]
[1] 1 2 3 4 5 6 7 8 9 10
> x <- NULL
> x[[1]] <- 1
> x
[1] 1
# This generates the same bug as the above:
> x <- NULL
> x[[1]] <- numeric(0)
> x
[1] 4.250083e-314
It looks like we're trying to be too clever with handling assignments to
components of NULL. Wouldn't it make more sense for those to generate
an error?
Duncan Murdoch
More information about the R-devel
mailing list