Использование индексов и значений переменных одновременно в заголовках Axis в R - PullRequest
5 голосов
/ 11 августа 2011

Я хочу использовать заголовок «Выбросы CO2 в водно-болотных угодьях» на графике в R, тогда как 2 в CO2 в нижнем индексе, а значение для региона (здесь: «водно-болотные угодья») содержится в переменной с именем регион».

region = "wetlands"
plot (1, 1, main=expression(CO[2]~paste(" emissions in ", region)))

Проблема в том, что вставляется не значение переменной, а имя переменной. Это дает «выбросы CO2 в регионе» вместо «выбросы CO2 в водно-болотных угодьях». Я также попробовал:

region="wetlands"
plot (1,1,main=paste(expression(CO[2]), "emissions in", region))

Но здесь не делается нижний индекс, а заголовок: «Выбросы CO [2] в водно-болотных угодьях».

Возможно ли как-то получить значения переменных в выражении?

Спасибо за вашу помощь,

Sven

Ответы [ 3 ]

13 голосов
/ 11 августа 2011

Нет необходимости использовать paste() при создании выражения для аннотации в стиле plothmath.Это прекрасно работает:

region <- "foo"
plot (1, 1, main = bquote(CO[2] ~ "emissions in" ~ .(region)))

, давая:

enter image description here

Использование paste() только мешает.

Nb: Выприходится заключать в кавычки "in", потому что в противном случае синтаксический анализатор воспринимает его как ключевую часть синтаксиса R.

7 голосов
/ 11 августа 2011

Вы можете использовать замену:

mn <- substitute(CO[2]~ "emissions in" ~ region, list(region="wetlands") )
plot(1, 1, main=mn )

substitute plot

Из файла справки ?substitute:

Типичным использованием заменителя является создание информационных ярлыков для наборы данных и графики. Пример myplot ниже показывает простое использование это средство. Он использует функции разбора и замены для создания метки для сюжета, которые являются версиями символьных строк фактического Аргументы функции myplot.

2 голосов
/ 11 августа 2011

Для вашего случая, украденный из одного из ответов по дублированной ссылке:

x <- "OberKrain"
plot(1:10, 1:10, main = bquote(paste(CO[2], " in ", .(x))))

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...