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)))

введите описание изображения здесь

Другие вопросы по тегам