[R] Could graph objects be stored in a "two-dimensional list"?
David Winsemius
dwinsemius at comcast.net
Thu May 23 22:39:58 CEST 2013
On May 23, 2013, at 8:30 AM, jpm miao wrote:
> Hi,
>
> I have a few graph objects created by some graphic package (say, ggplot2,
> which I use frequently). Because of the existent relation between the
> graphs, I'd like to index them in two dimensions as p[1,1], p[1,2], p[2,1],
> p[2,2] for convenience.
>
> To my knowledge, the only data type capable of storing graph objects
(This will all be depending on what you do mean by "graph objects".)
> (and
> any R object) is list, but unfortunately it is available in only one
> dimension.
I think both of these presumptions are incorrect.
> Could the graphs be stored in any two-dimensional data type?
>
> One remedy that comes to my mind is to build a function f so that
> f(1,1)=1
> f(1,2)=2
> f(2,1)=3
> f(2,2)=4
> With functions f and f^{-1} (inverse function of f) , the two-dimensional
> indices could be mapped to and from a set of one-dimensional indices, and
> the functions are exactly the way R numbers elements in a matrix. Does R
> have this built-in function for a m by n matrix or more generally, m*n*p
> array? (I know this function is easy to write, but just want to make sure
> whether it exists already)
>
Matrices can hold list elements:
> matrix( list(a="a"), 2,2)
[,1] [,2]
[1,] "a" "a"
[2,] "a" "a"
> matrix( list(a="a"), 2,2)[1,1]
[[1]]
[1] "a"
And list may be nested in a regular "matrix"
> list( list( list(a="a"), list(b="bb") ),
list(list(c="ccc"), list(d="dddd") ) )[[1]][[2]]
$b
[1] "bb"
So storing in this manner for access by an appropriately designed function should also be straight-forward. You could argue that the lattice-object panel structure depends on this fact.
>
> [[alternative HTML version deleted]]
Please learn to post in plain text.
David Winsemius
Alameda, CA, USA
More information about the R-help
mailing list