gpt4 book ai didi

r - 为什么有 plot.lm 帮助页面,而函数 plot.lm 不存在

转载 作者:行者123 更新时间:2023-12-02 04:35:01 26 4
gpt4 key购买 nike

我试图弄清楚默认 r plot 的残差与拟合图中使用了哪种平滑线对于 lm对象,所以我通过输入 ?plot.lm 查看了帮助页面,因为据我了解 <function>.<type>是如何定义不同对象类型的这些默认行为的。

正如预期的那样,有一个帮助页面,但它没有特别提到残差与拟合图中的平滑线,所以我想检查基本代码,通常对于一个函数,你可以通过在没有支架的控制台。但输入 plot.lm进入控制台给出错误object 'plot.lm' not found .因为帮助页面说它在 stats 中包我也试过stats::plot.lm ,但没有效果。我试过 plot还有一些plot.<something>类似 plot.default 的变体他们确实存在并提供了代码。

为什么有 plot.lm 的帮助页面虽然似乎没有一个名为 plot.lm 的函数lm 的绘图行为在哪里未在 plot.lm 中定义的对象?

我希望它与 S3 和 S4 方法之间的差异有关,但我对 R 的那方面了解不够,无法弄清楚。

最佳答案

我最近在编写一个函数来绘制默认 plot.lm() 绘图时遇到了这个问题,而不是使用 ggplot2。从源代码中我可以看出,plot.lm() 调用了 panel.smooth(),后者又调用了 stats::lowess(),其源代码是:

function (x, y = NULL, f = 2/3, iter = 3L, delta = 0.01 * diff(range(x))) 
{
xy <- xy.coords(x, y, setLab = FALSE)
o <- order(xy$x)
x <- as.double(xy$x[o])
list(x = x, y = .Call(C_lowess, x, as.double(xy$y[o]), f,
iter, delta))
}

所以我们可以看到它调用了C_lowess()。不幸的是,我似乎无法在 R 中访问此函数的源代码;我假设它是用 C/C++ 编写的。但是,原始实现似乎来自 this paper由著名的统计学家威廉克利夫兰。如果有人知道这个特定功能是如何在 R 中实现的,我个人很想知道!

关于r - 为什么有 plot.lm 帮助页面,而函数 plot.lm 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44391832/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com