我很感激帮助理解R中几种类型函数之间的主要区别.
在不同类型的函数的定义中,我有点不知所措,并且已经变得有些难以理解不同类型的函数如何彼此相关.
具体来说,我对以下类型的函数之间的关系和差异感到困惑:
Generic或Method:基于输入参数的类,通过使用Method Dispatch调用适当的方法函数的泛型函数.
隐形与可见
原始与内在
我对这些不同类型的函数如何相互关联(如果有的话)以及它们之间的各种差异和重叠感到困惑.
以下是有关原始与内部的一些文档:http://www.biosino.org/R/R-doc/R-ints/_002eInternal-vs-_002ePrimitive.html
泛型是可以应用于类对象的泛型函数。每个类都使用特定的方法编写,然后将其设置为通用方法。因此,您可以使用“methods”函数查看与通用调用相关的特定方法:
methods(print)
Run Code Online (Sandbox Code Playgroud)
这将列出与通用“print”相关的所有方法。或者,您可以通过此调用查看给定类具有的所有泛型
methods(,"lm")
Run Code Online (Sandbox Code Playgroud)
其中 lm 是类线性模型。这是一个例子:
x <- rnorm(100)
y <- 1 + .4*x + rnorm(100,0,.1)
mod1 <- lm(y~x)
print(mod1)
Call:
lm(formula = y ~ x)
Coefficients:
(Intercept) x
1.002 0.378
print.lm(mod1)
Call:
lm(formula = y ~ x)
Coefficients:
(Intercept) x
1.002 0.378
Run Code Online (Sandbox Code Playgroud)
print(mod1)(通用调用)和 print.lm(mod1)(对类的方法调用)都执行相同的操作。R为什么要这样做?我真的不知道,但据我了解,这就是方法和泛型之间的区别。
| 归档时间: |
|
| 查看次数: |
359 次 |
| 最近记录: |