[R] "[[" gotcha

From: Robin Hankin <r.hankin_at_noc.soton.ac.uk>
Date: Tue 16 Jan 2007 - 10:10:42 GMT


The following gotcha caught me off-guard just now.

I have two matrices, a and b:

a <- matrix(1,3,3)
b <- matrix(1,1,1)

(note that both "a" and "b" are matrices).

I want them in a list:

> B <- NULL
> B[[1]] <- a
> B[[2]] <- b
> B
[[1]]

      [,1] [,2] [,3]

[1,]    1    1    1
[2,]    1    1    1
[3,]    1    1    1

[[2]]
      [,1]

[1,] 1

>

This is fine.

But swapping "a" and "b" over does not behave as desired:

> B <- NULL
> B[[1]] <- b
> B[[2]] <- a
Error in B[[2]] <- a : more elements supplied than there are to replace
>

The error is given because after B[[1]] <- a, the variable B is just a scalar and
not a matrix (why is this?)

What's the bulletproof method for assigning matrices to a list (whose length is
not known at runtime)?

--
Robin Hankin
Uncertainty Analyst
National Oceanography Centre, Southampton
European Way, Southampton SO14 3ZH, UK
  tel  023-8059-7743

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Received on Tue Jan 16 21:30:55 2007

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Tue 16 Jan 2007 - 12:30:27 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.