【问题标题】:Formatting regression line equation using ggplot2 in R在 R 中使用 ggplot2 格式化回归线方程
【发布时间】:2013-08-17 07:02:33
【问题描述】:

我很好奇如何编辑 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|。感谢您的任何意见!不胜感激!

这来自另一个线程(Adding Regression Line Equation and R2 on graph

【问题讨论】:

  • 抱歉,您的上一个请求对我来说没有多大意义。
  • 如果您解释为什么要“消除 %.%”以及您是否希望在输出中看到 abs-bars,这将有助于您了解目标。

标签: r ggplot2 regression equation


【解决方案1】:

如果你想要 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 表达式需要了解语法规则:token/separator/token,但您可以使用“+”或“-”作为一元分隔符。 ?plotmath 中的 plotmath 符号表的上部具有可接受的分隔符。空格和换行符会被忽略。

【讨论】:

    【解决方案2】:

    您看到了什么错误?这对我有用,可以按要求提供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));                 
    }
    

    【讨论】:

      猜你喜欢
      • 2016-11-07
      • 2020-10-07
      • 2015-01-02
      • 1970-01-01
      • 2017-03-24
      • 1970-01-01
      • 2015-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多