apa_print () уравнения в папайе против ggplot2 (название) - PullRequest
0 голосов
/ 04 ноября 2018

Я использую пакет папайи в уценке R (который я люблю). Если я сделаю что-то вроде этого:

The test regression equation was: `r testregressionx1$full_result$modelfit$r2`

Я получу что-то вроде этого после того, как вяжу в pdf (правильно отформатированный):

R 2 = .10, 90% CI [0.00, 0.45], F(1,10) = 1.07, 239, p = .326

Однако, если я попытаюсь добавить эту информацию в заголовок рисунка ggplot2 следующим образом:

+ggtitle(testregressionx1$full_result$modelfit$r2)

Я получаю что-то вроде этого (что плохо):

R^2 = .10$, 90\% CI $[0.00$, $0.45]$, $F(1, 1 ...

Как я могу получить такую ​​же распечатку на рисунке, как и в тексте? Кроме того, как я могу ссылаться только на значения r2 и p на рисунке?

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Поскольку вы не предоставите воспроизводимый пример, я поработаю с примером из документации.

library("papaja")

ctl <- c(4.17, 5.58, 5.18, 6.11, 4.50, 4.61, 5.17, 4.53, 5.33, 5.14)
trt <- c(4.81, 4.17, 4.41, 3.59, 5.87, 3.83, 6.03, 4.89, 4.32, 4.69)
group <- gl(2, 10, 20, labels = c("Ctl", "Trt"))
weight <- c(ctl, trt)
lm_fit <- lm(weight ~ group)

lm_res <- apa_print(lm_fit)

Как указал Мариус, вы можете использовать latex2exp::TeX() для преобразования математики LaTeX в R-выражение. Проблема здесь в том, что это преобразование не является безупречным с этой строкой, поэтому оно требует некоторого дополнительного форматирования:

# Escape brackets and remove backslash in front of percent sign
modified_r2 <- gsub("\\]", "\\\\]", 
               gsub("\\[", "\\\\[",
               gsub("\\\\", "", lm_res$full_result$modelfit$r2)))

ggplot(data.frame(weight, group), aes(x = group, y = weight)) +
  geom_point() +
  ggtitle(TeX(modified_r2))

enter image description here

Если вам нужно только R ^ 2 и значение p, вам также необходимо изменить строку символов. Например,

library("stringr")

modified_r2 <- paste0(
  str_extract(lm_res$estimate$modelfit$r2, "\\$R\\^2 = \\.\\d\\d\\$"),
  ", ", 
  str_extract(lm_res$statistic$modelfit$r2, "\\$p = \\.\\d+\\$"))
0 голосов
/ 06 ноября 2018

papaja генерирует символьные строки, которые RMarkdown может интерпретировать как уравнения TeX (где знаки доллара открывают среду math в TeX).

Насколько я знаю, ggplot2 не охватывает уравнения TeX. Однако вы можете преобразовать уравнения TeX в R-выражения, например, с пакетом latex2exp, а затем используйте выражения R в вашем ggplot.

my_tex_expression <- "$R^2 = .146$"

library(ggplot2)
ggplot(npk) + 
  geom_point(aes(x = N, y = yield)) + 
  xlab(latex2exp::TeX(my_tex_expression))

выходной участок Также может быть полезно проверить этот пост на stackoverflow: помещение математических символов и индексов, смешанных с обычными буквами в R / ggplot2

...