R: Как смешать последовательность переменных и греческие символы в строке - PullRequest
4 голосов
/ 15 февраля 2012

Предположим, что x и y являются переменными.Я пытаюсь создать заголовок графика, который имеет латексный эквивалент $\sigma_v =$ 3 $\rho =$ 5, где значения 3 и 5 взяты из R переменных.

Вот самое близкое, что мне удалось прийти (смоделировано по примеру в? Plotmath):

x <- 1:10
y <- 3
z <- 5
plot(x,x)
mtext(substitute(list(sigma[v],rho) == group("(",list(a,b),")"),list(a=y,b=z)))

Возможно ли иметь последовательность строк "variable = number"?

Ответы [ 2 ]

3 голосов
/ 15 февраля 2012

Вы можете использовать bquote(), чтобы делать то, что вы сказали, что хотели (эквивалент LaTeX).Вот пример:

x <- 1:10
y <- 3
z <- 5
plot(x,x)
title(main = bquote(sigma[v] == .(y) ~~ rho == .(z)))
2 голосов
/ 15 февраля 2012

В выражении LaTex не было запятой, разделяющей две пары, но, похоже, вы действительно хотели, чтобы там была одна, поэтому посмотрите, является ли это хорошим решением:

mtext(substitute(sigma[v] == a *","~ rho == b, list(a=y,b=z)))

Чтобы прокомментировать понятие "Выражения конкатенации "поднятые mcd: Valid (невидимым)" "конкатенаторами" являются ~ и * и (видимые) инфиксные операторы.Пробелы являются , а не действительными разделителями (и они игнорируются).Вам не нужно ничего заключать в кавычки, кроме запятых, скобок, не используемых для видимой группировки неинтерпретированных подвыражений, а также каретки и скобки, не используемых для их побочных эффектов.Иногда удобнее заключать в кавычки длинную строку текста, потому что пробелы легче набирать, чем несколько * или тильды, чтобы отделить слова, не принадлежащие к заговору.

...