apa_print()方程papaja与GGPLOT2(标题)

问题描述 投票:1回答:2

我使用R中的降价包papaja(我的爱)。如果我做这样的事情:

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值的数字?

r ggplot2 markdown papaja
2个回答
2
投票

既然你不提供重复的例子,我会从文档的例子工作。

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+\\$"))

2
投票

papaja生成可以由RMarkdown被解释为TeX的方程(其中的美元符号打开的TeX的math环境)的字符串。

据我所知,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))

output plot它也可能是有用的检查计算器这个帖子:putting mathematical symbols and subscripts mixed with regular letters in R/ggplot2

© www.soinside.com 2019 - 2024. All rights reserved.