[R] Dynamic Creation and Use of Object Names

Bert Gunter bgunter@4567 @end|ng |rom gm@||@com
Mon Aug 23 18:06:50 CEST 2021


... and to add to Ivan's suggestions, **depending on what you are
trying to show with your grid of graphs,**  you may wish to consider
using ggplot's "facet" capabilities to assure that any quantitative
variables that you are encoding in the maps (e.g. by color, density
shading, etc.) are depicted on the same scale with appropriate
legends.  (Of course, ignore if this is not the case).  If so, you
will need a different data structure for your data, I believe.

Bert Gunter

"The trouble with having an open mind is that people keep coming along
and sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )

On Mon, Aug 23, 2021 at 4:51 AM Dr Eberhard Lisse <nospam using lisse.na> wrote:
>
> Thank you,
>
> more to study :-)-O
>
> el
>
> On 23/08/2021 10:20, Ivan Krylov wrote:
> > On Mon, 23 Aug 2021 08:37:54 +0200
> > Dr Eberhard Lisse <nospam using lisse.NA> wrote:
> >
> >> create the variables dynamically and add them to to
> >> the grid (dynamically, ie adding more countries)
> >
> > In my opinion, creating variables in the global environment
> > programmatically may lead to code that is hard to understand and debug
> > [*]. A key-value data structure (a named list or a separate
> > environment) would avoid the potential problems from variable name
> > collision. How about the following:
> >
> > 1. Put the countries in a vector: c('Namibia', 'Germany', ...)
> >
> > 2. Use lapply() to get a list of objects returned from your PICTURE
> >     function
> >
> > 3. To save the pictures into individual files, loop over the list. You
> >     can use setNames on the step 1 or 2 to make it a named list and keep
> >     the country names together with their pictures:
> >
> >     for (n in names(pictures)) {
> >       dev.new()
> >       print(pictures[[n]])
> >       ggsave(paste0(n, '.png'), ...)
> >       dev.off()
> >     }
> >
> >     (You can also use the png() device and plot straight to the file,
> >     avoiding the need to draw the plot in the window for a fraction of a
> >     second and for ggsave().)
> >
> > 4. Use the grobs= argument of grid.arrange() to pass the list of
> >     objects to arrange instead of passing individual objects via ...
> >
>
>
> --
> To email me replace 'nospam' with 'el'
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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