在 substitute() 表达式中添加换行符
Adding a newline in a substitute() expression
我正在尝试使用来自回归模型的相关数据来注释 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
不能用在 plotmath
表达式中。您或许可以将表达式分成两部分,然后使用 annotate
在您想要的地方添加表达式。或者,使用 atop
。看看这个 post ->
Line break in expression()?
我正在尝试使用来自回归模型的相关数据来注释 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
不能用在 plotmath
表达式中。您或许可以将表达式分成两部分,然后使用 annotate
在您想要的地方添加表达式。或者,使用 atop
。看看这个 post ->
Line break in expression()?