[R] extract argument names

Stavros Macrakis macrakis at alum.mit.edu
Tue Apr 7 22:34:48 CEST 2009


a1 <- "qss(x1,lambda=100)"
> parse(text=a1)[[1]][[2]]
x1

This will not work for length(a) != 1, so you have to explicitly map
over your list, e.g.

a <- paste("qss(",paste("x",1:6,sep = "") ,", lambda =100)", sep = "")
> dput( lapply(a,function(x)parse(text=x)[[1]][[2]]) )
list(x1, x2, x3, x4, x5, x6)

paste(lapply(a,function(x)parse(text=x)[[1]][[2]]),collapse=", ")
[1] "x1, x2, x3, x4, x5, x6"

          -s

On Tue, Apr 7, 2009 at 3:26 PM, roger koenker <rkoenker at uiuc.edu> wrote:
> I have a vector of character strings that look like R expressions:
>
>> a <- paste("qss(",paste("x",1:6,sep = "") ,", lambda =100)", sep = "")
>> a
> [1] "qss(x1, lambda =100)" "qss(x2, lambda =100)" "qss(x3, lambda =100)"
> [4] "qss(x4, lambda =100)" "qss(x5, lambda =100)" "qss(x6, lambda =100)"
>
> That I would like to operate on to obtain the names of the first argument,
> i.e.
>
>> foo(a)
> [1] "x1" "x2" "x3" "x4" "x5" "x6"
>
> I thought there was some simple idiom involving deparse, but it is eluding
> my searches.
>
>
> url:    www.econ.uiuc.edu/~roger            Roger Koenker
> email    rkoenker at uiuc.edu            Department of Economics
> vox:     217-333-4558                University of Illinois
> fax:       217-244-6678                Champaign, IL 61820
>
> ______________________________________________
> R-help at 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.
>




More information about the R-help mailing list