Marc,

Thanks,

        sapply(ls(pat = "^name"),get)

was exactly what I was after.  The default behavior for vectors of
equal length is nice too, but I was most interested in the ragged
case, which produces a list.


url:    www.econ.uiuc.edu/~roger            Roger Koenker
email    rkoen...@uiuc.edu            Department of Economics
vox:     217-333-4558                University of Illinois
fax:       217-244-6678                Urbana, IL 61801



On Jul 23, 2009, at 2:41 PM, Marc Schwartz wrote:

On Jul 23, 2009, at 9:19 AM, roger koenker wrote:

This is an attempt to rescue an old R-help question that apparently received no response from the oblivion of collective silence, and besides I'm also
curious about the answer

From: Griffith Feeney (gfee...@hawaii.edu)
Date: Fri 28 Jan 2000 - 07:48:45 EST   wrote (to R-help)
Constructing lists with

list(name1=name1, name2=name2, ...)

is tedious when there are many objects and names are long. Is there an R function that takes a character vector of object names as an argument and
returns a list with each objected tagged by its name?

The idiom

        lapply(ls(pat = "^name"), function(x) eval(as.name(x)))

makes the list, but (ironically) doesn't assign the names to the components.

Roger,

How about something like this:

name1 <- 1:3
name2 <- 1:5
name3 <- 1:9
name4 <- 1:7


> ls(pat = "^name")
[1] "name1" "name2" "name3" "name4"


> sapply(ls(pat = "^name"), get, simplify = FALSE)
$name1
[1] 1 2 3

$name2
[1] 1 2 3 4 5

$name3
[1] 1 2 3 4 5 6 7 8 9

$name4
[1] 1 2 3 4 5 6 7


Is that what you are after? With sapply(), you can take advantage of the USE.NAMES argument, which defaults to TRUE and then set simplify to FALSE to force the result to be a list rather than a matrix. Of course, in the case I have above, when there are uneven length elements, the result will be a list anyway.

HTH,

Marc Schwartz

______________________________________________
R-help@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.

Reply via email to