On 15/04/2009 6:31 AM, Dan Kelley wrote:
Is there a way to specify a *vector* of statements, as an argument to a
function.

There are several ways. expression() converts its arguments into a vector of expressions, e.g.

> e <- expression(cat("a\n"), cat("b\n"))
> e[[1]]
cat("a\n")
> eval(e[[1]])
a

Duncan Murdoch

 What I'm trying to do is to provide the ability to add elements
to a series of panels drawn by a function.  (As documented, split.screen
does not provide this capability.) My idea is to mimic the 'plot.axes'
argument of filled.contour(), but with indexed statements to be executed.  A
series of tests is given below.  (NOTE: I know that I can use parse() on
character strings, but I'm trying to avoid forcing users of the function to
deal with nested quote marks, and the filled.contour scheme seems elegant to
my eye.)

f<-function(x){x[[1]]}
f(list({cat("a\n")},{cat("b\n")}))
a
b
f(c({cat("a\n")},{cat("b\n")}))
a
b
NULL
f({{cat("a\n")},{cat("b\n")}})
Error: syntax error


______________________________________________
[email protected] 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