[R] Could graph objects be stored in a "two-dimensional list"?

William Dunlap wdunlap at tibco.com
Thu May 23 18:18:05 CEST 2013


>To my knowledge, the only data type capable of storing graph objects
>(and
>any R object) is list, but unfortunately it is available in only one
>dimension. Could the graphs be stored in any two-dimensional data type?

Lists can have any number of dimensions you want, just as with other vector
types.  The default printout of such a thing is not very pretty, but the information
is in the object.

> M <- matrix(list(as.roman(99), "Two", c(3,pi) , c(4,44,444)), nrow=2, ncol=2)
> M
     [,1]  [,2]     
[1,] 99    Numeric,2
[2,] "Two" Numeric,3
> M[[1,1]]
[1] XCIX
> M[[1,2]]
[1] 3.000000 3.141593

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com


> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf
> Of Jeff Newmiller
> Sent: Thursday, May 23, 2013 9:06 AM
> To: jpm miao; r-help
> Subject: Re: [R] Could graph objects be stored in a "two-dimensional list"?
> 
> You could use lists of lists, and index them with vectors.
> 
> a <- list()
> a[[1]] <- list()
> a[[2]] <- list()
> a[[c(1,1)]] <- g11
> a[[c(1,2)]] <- g12
> a[[c(2,1)]] <- g21
> a[[c(2,2)]] <- g22
> print(a[[c(2,1)]])
> 
> but this seems like an inefficient use of memory because your indexed data is stored
> more compactly than the graph object is. I would index the data and generate the graph
> object on the fly when I wanted to see it.
> ---------------------------------------------------------------------------
> Jeff Newmiller                        The     .....       .....  Go Live...
> DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
>                                       Live:   OO#.. Dead: OO#..  Playing
> Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
> /Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
> ---------------------------------------------------------------------------
> Sent from my phone. Please excuse my brevity.
> 
> jpm miao <miaojpm at gmail.com> 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
> >(and
> >any R object) is list, but unfortunately it is available in only one
> >dimension. 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)
> >
> >   Thanks,
> >
> >Miao
> >
> >	[[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.
> 
> ______________________________________________
> 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.



More information about the R-help mailing list