R: легенда, выражение, как добавить запятую между двумя значениями и как подавить научную запись
Я пытаюсь отформатировать легенду в своем сюжете, но я должен использовать выражение () из-за греческого и надстрочного индекса. Однако, когда я хочу отобразить r^2 = 0,45, P<0,0001, я получаю r^2 = 0,45 P<1e-04, когда я набираю
legend(expression(r^2==0.9230~~P<0.0001))
Я попытался найти функцию list(), но она не помогает с запятыми. Я не мог найти ничего об использовании десятичных знаков в функции expression().
Мы ценим любые предложения.
Спасибо
2 ответа
Ты можешь использовать paste()
(в пределах звонка expression()
) соединить строки символов и выражения без кавычек. Биты без кавычек будут оцениваться с использованием специальных правил, представленных example(plotmath)
а также demo(plotmath)
, в то время как строки символов будут напечатаны дословно.
Вот пример (который также использует phantom()
, поскольку <
оператор ожидает / нуждается в чем-то как слева, так и справа):
plot(1)
legend(x = "topleft",
legend = expression(paste(r^2==0.9230, ", ", P<phantom(), "0.0001")))
Вот альтернативный способ использования substitute
что избегает phantom
:
plot(1)
options(scipen=10)
legend(x = "topleft",
legend = substitute(list(r^2 == r2, P < p), list(r2=0.923, p=0.0001)))