我想查看一个函数的源代码,看看它是如何工作的.我知道我可以通过在提示符下键入其名称来打印函数:
> t
function (x)
UseMethod("t")
<bytecode: 0x2332948>
<environment: namespace:base>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,是什么UseMethod("t")
意思?我如何找到实际使用的源代码,例如:t(1:10)
?
有没有当我看到之间的差异UseMethod
,当我看到standardGeneric
和showMethods
,与with
?
> with
standardGeneric for "with" defined from package "base"
function (data, expr, ...)
standardGeneric("with")
<bytecode: 0x102fb3fc0>
<environment: 0x102fab988>
Methods may be defined for arguments: data
Use showMethods("with") for currently available ones.
Run Code Online (Sandbox Code Playgroud)
在其他情况下,我可以看到正在调用R函数,但我找不到这些函数的源代码.
> ts.union
function (..., dframe = FALSE)
.cbind.ts(list(...), .makeNamesTs(...), dframe = dframe, union = TRUE)
<bytecode: 0x36fbf88>
<environment: namespace:stats>
> .cbindts
Error: object '.cbindts' …
Run Code Online (Sandbox Code Playgroud) 这些都没有显示pnorm
功能的源代码,
stats:::pnorm
getAnywhere(pnorm)
Run Code Online (Sandbox Code Playgroud)
我怎么能看到源代码pnorm
?
sum
(..., na.rm = FALSE) .Primitive("sum")
.Primitive("sum")
function (..., na.rm = FALSE) .Primitive("sum")
methods(sum)
no methods were found
Run Code Online (Sandbox Code Playgroud)
而且,我怎样才能看到该sum
函数的源代码?
HoltWinters说,假设我对R功能的运作很好奇.我输入了HoltWinters
它,它显示了该功能的R源.在检查时,源显示该函数是第二个函数的包装器:
final.fit <- hw(alpha, beta, gamma)
Run Code Online (Sandbox Code Playgroud)
据推测,严重的工作发生在函数hw中.但是,我无法在任何地方找到此功能来阅读其来源
> hw
Error: object 'hw' not found
Run Code Online (Sandbox Code Playgroud)
我该如何阅读来源?
编辑:好的,所以现在我读过hw
,我看到它是一个包装C_HoltWinters
.我该怎么读?