Daniel Wilhelm wrote: > I believe that I may have found a bug in R. The top code sample gives > an error as shown. However, by simply switching which field is > initialized first as in the bottom code sample, it works as expected. > > > This gives an error: > > > a <- NULL > a[["field1"]] <- 1 > a[["field2"]] <- matrix(c(2,1), 1) > > Error in a[["field2"]] <- matrix(c(2, 1), 1) : > more elements supplied than there are to replace > > > > Yet, this works as expected: > > a <- NULL > a[["field2"]] <- matrix(c(2,1), 1) > a[["field1"]] <- 1 > I'm surprised any of these work. I didn't expect to be able to index NULL, but the clue is there in the man page for "[[": "the left-hand-side is coerced as needed to accept the values."
What's happening is that in the first case, a becomes a numeric vector, and you can't assign a matrix to an element of a numeric vector. It won't fit. In the second case, a becomes a list, and the assignments both succeed. Duncan Murdoch ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel