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

5
我正在尝试使用回归模型的相关数据注释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));                 
}

它产生了预期的输出:一行中的所有内容。但我想将文本拆分成两行,第二行以italic(n)=开头。但是如果我引入一个\n,它在找到\n时抛出错误。如果我在引号内引入\n:"\n",则似乎会被忽略,文本仍保持在一行中。我没有找到如何在这样的表达式中引入换行符的任何参考资料。非常感谢您的帮助。

谢谢。

编辑:根据@Tim的评论,我呈现了重写代码并调整问题。


您的代码在 R 中无法运行,即使去除了 \n。请整理您的帖子。 - Tim Biegeleisen
1个回答

2

\n 不能在 plotmath 表达式中使用。您可以将表达式分成两部分,并使用 annotate 在所需位置添加表达式。或者,使用 atop。请查看此帖子 -> expression() 中的换行?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接