[Rd] list comprehension to create an arbitrary-sized list with arbitrary names/values

Olaf Mersmann olafm at statistik.tu-dortmund.de
Wed Oct 13 21:34:24 CEST 2010


Hi,

On 13.10.2010, at 21:26, Steve Kim wrote:
> mydict = dict([(keyfun(x), valfun(x)) for x in mylist])
> 
> to create a dictionary with whatever keys and values we want from an
> input list of arbitrary size. In R, I want to similarly create a list
> with names/values that are generated by some keyfun and valfun
> (assuming that keyfun is guaranteed to return something suitable as a
> name). How can I do this?

Try something like this:

  mydict <- lapply(mylist, valfun)
  names(mydict) <- sapply(mylist, keyfun)

or

  mydict <- structure(lapply(mylist, valfun), names=sapply(mylist, keyfun))

Cheers
Olaf



More information about the R-devel mailing list