#r #ggplot2 #expression
#r #ggplot2 #выражение
Вопрос:
У меня есть символьное выражение, содержащее результаты статистических тестов, и я хочу проанализировать это выражение в ggplot
объекте. Но я хочу, чтобы анализируемое выражение выглядело идентично, независимо от того, какое значение пользователь мог установить для scipen
параметров.
по умолчанию scipen = 0
(хорошо)
library(ggplot2)
# plot is just for illustration and has nothing to do with the statistics being displayed
ggplot(mtcars, aes(wt, mpg)) geom_smooth() geom_point()
labs(subtitle = parse(text = "list(~chi['gof']^2~(8)==617.445, ~italic(p)==4.15e-128)"))
с scipen = 999
(нежелательно)
library(ggplot2)
options(scipen = 999)
# plot is just for illustration and has nothing to do with the statistics being displayed
ggplot(mtcars, aes(wt, mpg)) geom_smooth() geom_point()
labs(subtitle = parse(text = "list(~chi['gof']^2~(8)==617.445, ~italic(p)==4.15e-128)"))
Как я могу убедиться, что анализируемое выражение всегда находится в научной нотации, не изменяя параметры на стороне пользователя?
Ответ №1:
Вы можете просто заключить значение в кавычки, чтобы убедиться, что оно анализируется как символьная строка, а не числовое значение:
library(ggplot2)
options(scipen = 999)
ggplot(mtcars, aes(wt, mpg)) geom_smooth() geom_point()
labs(subtitle = parse(text = "list(~chi['gof']^2~(8)==617.445, ~italic(p)=='4.15e-128')"))
Ответ №2:
Мы могли бы извлечь текущие параметры, а затем изменить их
op <- options()$scipen
options(scipen = 0)
ggplot(mtcars, aes(wt, mpg)) geom_smooth()
geom_point()
labs(subtitle = parse(text = "list(~chi['gof']^2~(8)==617.445, ~italic(p)==4.15e-128)"))
# // change it to current options
options(scipen = op)