...or use the more generic substitute() to replace parts of an expression, e.g.
i <- 3; xlab1 <- substitute(g[idx], list=list(idx=i)); xlab2 <- bquote(g[.(i)]); stopifnot(identical(xlab1, xlab2)); /Henrik On Mon, Aug 18, 2008 at 3:18 PM, Marc Schwartz <[EMAIL PROTECTED]> wrote: > on 08/18/2008 05:00 PM Nanye Long wrote: >> Hi all, >> >> I want to do plot() in a loop to make 10 graphs, so I have some code like >> >> for (i in 1:10) { >> plot(... ... , xlab = expression(g[i]) ) >> } >> >> I expect g_1, g_2, and so on appear on x labels, but it simply prints >> g_i for each graph. Does anybody know how to get around this problem? >> Thanks. >> >> NL > > Try this: > > par(mfrow = c(5, 2)) > > for (i in 1:10) > plot(1, xlab = bquote(g[.(i)])) > > > Note the use of bquote() and the use of .(i), which replaces 'i' with > the value of i in each iteration. > > See ?plotmath for some examples and ?bquote > > HTH, > > Marc Schwartz > > ______________________________________________ > R-help@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. > ______________________________________________ R-help@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.