【问题标题】:Confused about overloading resolution of functions in R?对 R 中函数的重载分辨率感到困惑?
【发布时间】:2014-09-06 01:11:53
【问题描述】:

对在这种情况下调用哪个函数感到困惑,

# Simple linear model
g<-lm(final~midterm, stat500)

# Plot the predicted line, with slope and intercept
abline(g$coef, lty=5)

这个 sn-p 取自http://cran.r-project.org/doc/contrib/Faraway-PRA.pdf,第 15 页。 令人困惑的部分是 abline 的调用。手册说调用签名是

用法:

 abline(a = NULL, b = NULL, h = NULL, v = NULL, reg = NULL,
        coef = NULL, untf = FALSE, ...)

典型的用法是:

 abline(a, b, untf = FALSE, ...)
 abline(h =, untf = FALSE, ...)
 abline(v =, untf = FALSE, ...)
 abline(coef =, untf = FALSE, ...)
 abline(reg =, untf = FALSE, ...)

那么 R 如何解决 abline(coef) 是应该被调用的?来自 python 世界,似乎通过提供一个没有名称的参数,应该使用第一个版本,即abline(a=g$coef, b=NULL)

有人能指出一个关于 R 中解析规则的好教程吗?

谢谢!

【问题讨论】:

    标签: r


    【解决方案1】:

    来自?abline 帮助页面。

    第一种形式 [abline(a, b, untf = FALSE, ...)] 以截距/斜率形式指定直线(或者 a 可以单独指定,并以向量形式包含斜率和截距)。

    因此,由于您正在进行简单的线性回归,g$coef 是一个长度为 2 的向量,因此这些值用作斜率和截距。

    所以真的没有区别

    abline(a, b, untf = FALSE, ...)
    

    abline(coef =, untf = FALSE, ...)
    

    如果你想使用后者,它恰好有一个更明确的参数名称。如果您只键入不带括号的abline,您可以轻松阅读abline 的源代码。只有一个abline 函数(它甚至不是通用的)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-15
      • 2021-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多