[R] use expression() in a loop

Marc Schwartz marc_schwartz at comcast.net
Tue Aug 19 00:18:13 CEST 2008


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



More information about the R-help mailing list