Я хочу динамически создать индекс для текста в графике с выражением R. Текст трех точек на графике ниже должен быть $\pi_1$, $\pi_2$ и $\pi_3$.

lbs <- vector()
for(i in 1:3) lbs <- append(lbs, expression(pi[i]))

plot(1:3)
text(1:3, labels=lbs)

Появляется греческая буква, но индекс остается как i. Я тоже пробовал bquote, но безуспешно.

Я ценю любые предложения.

1
JARO 23 Ноя 2017 в 13:01

1 ответ

Лучший ответ

Попробуй это

lbs <- vector()
for(i in 1:3) lbs <- append(lbs, parse(text=(paste0("pi[",i,"]"))))

plot(1:3)
text(1:3, labels=lbs)

Я уверен, что есть решения получше, но это работает. Проблема с вашим кодом в том, что все внутри expression() не оценивается. parse() вычисляет, а затем возвращает выражение. введите здесь описание изображения

2
Alex 23 Ноя 2017 в 10:18