[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