Векторизация легенды в R - PullRequest
0 голосов
/ 24 июня 2018

У меня есть вопрос, у меня есть несколько переменных (априори я не знаю, сколько). И я хочу построить их и добавить легенду для всех них автоматически. Я сделал это, но проблема в , что я не могу понять, как добавить сюда выражение . Я хочу, чтобы легенда выглядела как $ b_1 $, а не как бета [1].

У меня есть матрица: beta_tilde. И я готовлю это:

n <- 5
beta_tilde <- matrix(rnorm(100*n), nr = 100)

ts.plot(beta_tilde, ylim = c(min(beta_tilde), max(beta_tilde)), col = 1:n)
legend("topright" , legend = eval(substitute(paste("beta[", v,"]", sep = ""), list(v=1:n))), col=1:n, lty=1, cex=0.7)

1 Ответ

0 голосов
/ 24 июня 2018

substitute не возвращает вектор выражения, длина которого больше 1. Ваш подход с eval и paste в любом случае ошибочен.Вам следует изучить некоторые примеры вычислений на языке.

Я считаю, что цикл for проще всего здесь:

leg <- vector("expression", n)
for (i in seq_len(n)) leg[[i]] <- substitute(beta[v], list(v = i))
legend("topright", legend = leg, col=1:n, lty=1, cex=0.7)

resulting plot

...