On 9/26/2005 7:34 AM, [EMAIL PROTECTED] 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

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to