I'm trying to figure out how I can get a generalized 2D list/array/matrix/whatever working. Seems I can't figure out how to make the variables the right type. I always seem to get some sort of error... out of bounds, wrong type, wrong dim, etc. Very confused... :) x[["some label", "some other index"]] <- 3 x[["some other label", "something else"]] <- 4 I don't know the indexes/label ahead of time... they get generated... Any thoughts? -Toby. [[alternative HTML version deleted]]
Matrix made from a list:
m <- list(sin, 1:3, letters[1:3], expression(a+b))
dim(m) <- c(2, 2)
dimnames(m) <- list(letters[1:2], LETTERS[1:2])
class(m) # matrix
or
M <- structure(list(sin, 1:3, letters[1:3], expression(a+b)), .Dim = c(2, 2),
.Dimnames = list(c("a", "b"), c("A",
"B")))
class(M) # matrix
On Thu, Apr 23, 2009 at 10:03 PM, Toby <tobias.weingartner at gmail.com>
wrote:> I'm trying to figure out how I can get a generalized 2D
> list/array/matrix/whatever
> working. ?Seems I can't figure out how to make the variables the right
> type. ?I
> always seem to get some sort of error... out of bounds, wrong type, wrong
> dim, etc.
> Very confused... :)
>
> x[["some label", "some other index"]] <- 3
> x[["some other label", "something else"]] <- 4
>
> I don't know the indexes/label ahead of time... they get generated...
?Any
> thoughts?
>
> -Toby.
>
> ? ? ? ?[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org 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.
>
Toby wrote:> I'm trying to figure out how I can get a generalized 2D > list/array/matrix/whatever > working. Seems I can't figure out how to make the variables the right > type. I > always seem to get some sort of error... out of bounds, wrong type, wrong > dim, etc. > Very confused... :) > > x[["some label", "some other index"]] <- 3 > x[["some other label", "something else"]] <- 4 > > I don't know the indexes/label ahead of time... they get generated... Any > thoughts? >What you have there is not legal syntax, but this would be: x[[c("some label", "some other index")]] <- 3 This assumes that x is a list, and one of its entries is a list named "some label". It will not create that entry, but it will create an entry named "some other index", so you need if (is.null(x[["some label"]])) x[["some label"]] <- list() first. After executing this line and your first line above, you'll get > x $`some label` $`some label`$`some other index` [1] 3 Duncan Murdoch