1

I was wondering if it were possible to include variables when using expression in R.

For instance I would like to do something like this:

par(mfrow=c(2,3))
for (i in 1:6)
    {
    plot(x, p1-i*p2, main=expression(Phi[1] - i * Phi[2]))
    }

But this does not work, as it prints Φ1 - iΦ2 (i.e. it does not substitute i with 1, 2, ... 6

nico
  • 50,859
  • 17
  • 87
  • 112

2 Answers2

7

Use substitute:

> substitute(Phi[1] - i* Phi[2], list(i = i))
Phi[1] - 3 * Phi[2]
Jonathan Chang
  • 24,567
  • 5
  • 34
  • 33
0

Looks like it uses the variables. I set x = 1 and used the following.

> p1 = 100
> p2 = 10
> for (i in 1:6)
+     {
+     plot(x, p1-i*p2, main=expression(Phi[1] - i * Phi[2]))
+     }
> 

It gave me 6 graphs for Φ1 - iΦ2 with each showing the Y value descending.

NinjaCat
  • 9,974
  • 9
  • 44
  • 64