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

时间:2015-03-18 01:28:55

标签: r expression newline substitution

我试图用回归模型中的相关数据在ggplot中注释一个图。 我已按照建议in this SO post尝试修改该功能,以便在图中的换行符中添加其他几项。 这是我尝试新功能:

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

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

感谢。

编辑:在@Tim的一篇文章之后,我提出了一个重写代码和调整后的问题。

1 个答案:

答案 0 :(得分:1)

\n无法在plotmath表达式中使用。您可以将表达式分为两部分,并使用annotate将表达式添加到您想要的位置。或者,使用atop。看看这篇文章 - &gt; Line break in expression()?

相关问题