R语⾔查看函数源代码sourcecode
function是有多个语句组成,完成⼀个特定的任务。R语⾔⾥⾯有很多内嵌的functions,⽤户也可以⾃⼰定义。⽐如说sort, summary, help都是R⾥⾯常⽤的function。
我们如何查看⼀个R 函数function的源代码呢?
在R⾥⾯,想查看⼀个function的源代码,直接输⼊function的名字,执⾏就可以。
我们以sort为例⼦。
> sort
function (x, decreasing = FALSE, ...)
{
if (!is.logical(decreasing) || length(decreasing) != 1L)
stop("'decreasing' must be a length-1 logical vector.\nDid you intend to set 'partial'?")
UseMethod("sort")
}
<bytecode: 0x0000000014d14e48>
<environment: namespace:base>
我们可以看到sort的参数和⼀些R语句。那这个UseMethod("sort")⼜是什么意思?这个告诉我们sort是⼀个泛型函数,不同的classes有不同的实现。
我们接着看⼀下这个泛型函数的所有⽅法。我们可以看到sort.POSIXlt内部⽤的是order函数。
> methods(sort)
[1] sort.bibentry* sort.default sort.POSIXlt
see '?methods' for accessing help and source code
> sort.POSIXlt
function (x, decreasing = FALSE, na.last = NA, ...)
x[order(as.POSIXct(x), na.last = na.last, decreasing = decreasing)]
<bytecode: 0x000000000566f2d8>
<environment: namespace:base>
function怎么记忆在函数⾥⾯可以看到的<bytecode:>表⽰代码是编译过得,可能是C,C++或者fortran代码。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论