Hi. In a case like this, I can get strip headings that have the name "c" and the value for c. d <- data.frame(a=1:5,b=6:10,c=11:15) > xyplot(a ~ b | paste("c", c), data=d) > For more complicated examples, instead of using paste repeatedly I would like to use a function. It seems like what I really want is a macro, though. I'm not quite familiar enough with R's treatment of function parameters to know how to do something like this (ficticious example): f <- function(x) { paste(identifier(x), value(x)) } > rambo <- "brave" > f(rambo) "rambo brave" I've checked ?function, ?args, ?eval, and some others, but I think I'm barking up the wrong tree. Any pointers would be most appreciated. -- --Ed L Cashin | PGP public key: ecashin at uga.edu | http://noserose.net/e/pgp/
Gabor Grothendieck
2004-May-25 18:15 UTC
[R] accessing function arguments as text, macro style
Ed L Cashin <ecashin <at> uga.edu> writes:> function parameters to know how to do something like this (ficticious > example): > > f <- function(x) { paste(identifier(x), value(x)) } > > rambo <- "brave" > > f(rambo) > "rambo brave"R> f <- function(x) paste(as.character(substitute(x)),x) R> z <- 3 R> f(z) [1] "z 3"
Gabor Grothendieck <ggrothendieck at myway.com> writes: ...> R> f <- function(x) paste(as.character(substitute(x)),x) > R> z <- 3 > R> f(z) > [1] "z 3"Fantastic. Works like a charm. -- --Ed L Cashin | PGP public key: ecashin at uga.edu | http://noserose.net/e/pgp/
This solution may not quite work as you intend. I believe that the preferred solution is: f <- function(x) paste(deparse(substitute(x)),x) This would give the same result with the z<-3 example below, but try it for both versions with the call: f(sin(3)) The subtlety is that substitute returns the parse TREE of its (expression)argument, which you probably want deparsed rather than cast by as.character(). Cheers, Bert Ed L Cashin wrote:> Gabor Grothendieck <ggrothendieck at myway.com> writes: > > ... > > R> f <- function(x) paste(as.character(substitute(x)),x) > > R> z <- 3 > > R> f(z) > > [1] "z 3" > > Fantastic. Works like a charm. > > -- > --Ed L Cashin | PGP public key: > ecashin at uga.edu | http://noserose.net/e/pgp/ > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://www.stat.math.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html-- Bert Gunter Non-Clinical Biostatistics Genentech MS: 240B Phone: 650-467-7374 "The business of the statistician is to catalyze the scientific learning process." -- George E.P. Box