【问题标题】:Adding a newline in a substitute() expression在substitute() 表达式中添加换行符
【发布时间】:2015-03-18 01:28:55
【问题描述】:

我正在尝试使用回归模型中的相关数据注释 ggplot 中的图。 我遵循了in this SO post 的建议,并尝试修改函数以在情节的 newline 中添加几个附加项目。 这是我对新功能的尝试:

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 发表评论之后,我提出了一个重写的代码和调整后的问题。

【问题讨论】:

  • 即使删除了\n\,您的代码也无法在R 中运行。请整理您的帖子。

标签: r expression newline substitution


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-06-07
    • 2020-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-09
    • 2013-08-16
    • 1970-01-01
    相关资源
    最近更新 更多