[R] quoting expressions in a list

Stavros Macrakis macrakis at alum.mit.edu
Fri Jul 17 01:04:00 CEST 2009


On Thu, Jul 16, 2009 at 4:44 PM, Erik Iverson<eiverson at nmdp.org> wrote:
> I have a list of logical expressions, and I would really like it if the "names" of the components of the list were identical to the corresponding logical expression.
>
> So, as an example:
>
> df.example <- data.frame(a = 1:10, b = rnorm(10, 5))
>
> list.example <- list(df.example$a > 7,
>                     df.example$b < 4)
>
> Now what I'd really like is to name the components, and get the results of the following line without having to specify the right-hand side individually for each component:
>
> names(list.example) <- c("df.example$a > 7", "df.example$b < 4")

Something like this, perhaps?:

> listx <- function(...) structure(list(...),names=tail(as.list(substitute(c(...))),-1))
> list.example <- list(df.example$a > 7, df.example$b < 4)
> listx(df.example$a > 7, df.example$b < 4)
$`df.example$a > 7`
 [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE

$`df.example$b < 4`
 [1]  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE




More information about the R-help mailing list