繁体   English   中英

在R中使用ggplot2格式化回归线方程

[英]Formatting regression line equation using ggplot2 in R

我很好奇一个人如何编辑Jayden的以下解决方案,以使方程的格式为y = bx + a或y = bx-a? 我想使其看起来尽可能干净。

  lm_eqn = function(m) {

  l <- list(a = format(coef(m)[1], digits = 2),
      b = format(abs(coef(m)[2]), digits = 2),
      r2 = format(summary(m)$r.squared, digits = 3));

  if (coef(m)[2] >= 0)  {
    eq <- substitute(italic(y) == a + b %.% italic(x)*","~~italic(r)^2~"="~r2,l)
  } else {
    eq <- substitute(italic(y) == a - b %.% italic(x)*","~~italic(r)^2~"="~r2,l)    
  }

  as.character(as.expression(eq));                 
}

我试图在%。%中消除,这会引发错误,并且试图反转顺序,但是函数的if / else部分中的语法存在问题。 我也想在方程式的格式设置中使coeff(a)的显示不带负号。 abs(a)返回| a |。 感谢您的输入! 感激不尽!

这是从另一个线程开始的( 在图上添加回归线方程和R2

如果要使用b * x + a形式,则只需:

if (coef(m)[2] >= 0)  {
    eq <- substitute(italic(y) == 
                 b %.% italic(x) + a*","~~italic(r)^2~"="~r2, l)
  } else {
    eq <- substitute(italic(y) == 
               - b %.% italic(x) + a *"," ~~ italic(r)^2 ~"="~r2, l)  
  }

编写R表达式需要了解以下语法规则:标记/分隔符/标记,但是您可以使用“ +”或“-”作为一元分隔符。 ?plotmath中的plotmath符号表的上部具有可接受的分隔符。 空格和换行符将被忽略。

您看到什么错误? 这对我来说按要求给出bx ± a 您必须将abs()移至a而不是b的定义,并测试coef(m)[1]而不是2 ...

lm_eqn = function(m) {

  l <- list(a = format(abs(coef(m)[1]), digits = 2),
      b = format(coef(m)[2], digits = 2),
      r2 = format(summary(m)$r.squared, digits = 3));

  if (coef(m)[1] >= 0)  {
    eq <- substitute(italic(y) ==  b %.% italic(x) + a*","~~italic(r)^2~"="~r2,l)
  } else {
    eq <- substitute(italic(y) ==  b %.% italic(x) - a*","~~italic(r)^2~"="~r2,l)    
  }

  as.character(as.expression(eq));                 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM