[R] extract from a list of lists

Bert Gunter bgunter@4567 @end|ng |rom gm@||@com
Tue Dec 27 21:38:05 CET 2022


Well, I prefer Greg's approach, but if you want to avoid calls to $ or
`[[` then you could do:

unlist(fits)[ rep(names(fits[[1]]) == 'iter', length(fits))]


Cheers,
Bert

On Tue, Dec 27, 2022 at 9:46 AM Greg Snow <538280 using gmail.com> wrote:
>
> Another option is the map family of functions in the purrr package
> (yes, this depends on another package being loaded, which may affect
> things if you are including this in your own package, creating a
> dependency).
>
> In map and friends, if the "function" is a string or integer, then it
> is taken as the piece to be extracted, so you should be able to do
> something like:
>
> library(purrr)
> map(fits, 'iter')
> # or
> map_int(fits, 'iter')
> # or
> map_dbl(fits, 'iter')
>
> which of the last 2 to use depends on how `iter` is stored.
>
> On Tue, Dec 27, 2022 at 10:16 AM Therneau, Terry M., Ph.D. via R-help
> <r-help using r-project.org> wrote:
> >
> > I not uncommonly have the following paradym
> >     fits <- lapply(argument, function)
> >
> > resulting in a list of function results.   Often, the outer call is to mclapply, and the
> > function encodes some long calculation, e.g. multiple chains in an MCMC.
> > Assume for illustration that each function returns a list with elements   beta, loglik,  iter.
> >
> > Then  sapply(fits,  function(x) x$iter)
> > will give me a vector, with the number of iterations used by each instance.
> >
> > I've often been suspicious that there is some simple shorthand for the "grab all the
> > elements named iter" that skips the explicit x$iter function.   Am I indeed overlooking
> > something?    I don't expect a speed increase, just cleaner code.
> >
> > Terry T.
> >
> > --
> > Terry M Therneau, PhD
> > Department of Quantitative Health Sciences
> > Mayo Clinic
> > therneau using mayo.edu
> >
> > "TERR-ree THUR-noh"
> >
> >         [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > 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.
>
>
>
> --
> Gregory (Greg) L. Snow Ph.D.
> 538280 using gmail.com
>
> ______________________________________________
> 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