在 Replace() 表达式中添加换行符

Pav*_*ive 5 expression newline r substitution

我正在尝试使用回归模型中的相关数据来注释 ggplot 中的图。我遵循了这篇 SO 帖子中的建议,并尝试修改该函数,以便在图中的换行符中添加几个附加项目。这是我对新功能的尝试:

lm_eqn = function(m){
  eq <- substitute(italic(y) == a %.% italic(x)^b*","~~italic(r)^2~"="~r2*","~~italic(n)~"="~nn*","~~italic(p-value)~"="~pv, 
                   list(a = format(exp(coef(m)[1]), digits = 3), 
                        b = format(coef(m)[2], digits = 3), 
                        r2 = format(summary(m)$r.squared, digits = 3),
                        nn=format(summary(m)$df[2]),
                        pv=format(summary(m)$coefficients[,4][2])))
  as.character(as.expression(eq));                 
}
Run Code Online (Sandbox Code Playgroud)

它产生预期的输出:全部在一行中。但我想将文本分成两行,第二行以italic(n)=. 但是如果我引入 a \n,它在找到时会抛出错误\n。如果我在引号内引入 \n:"\n"那么它似乎会被忽略并且文本保留在一行中。我还没有找到任何关于如何在这样的表达式中引入换行符的参考。我们将非常感谢您的帮助。

谢谢。

编辑:根据@Tim 的评论,我提出了重写的代码和调整的问题。

jen*_*tjr 2

\n不能在表达式中使用plotmath。您也许可以将表达式分成两部分,然后用于annotate在您想要的位置添加表达式。或者,使用atop. 查看这篇文章 -> 在表达式()中换行?