回收`rbinom`输入的代码在哪里?

问题描述 投票:1回答:1

从文档中,rbinom有三个参数,nsizeprobthis question的答案指出,如果prob是一个向量,它将被回收直到达到n。我想找到那个代码!

R源立即调用C函数:

> rbinom
function (n, size, prob) 
.Call(C_rbinom, n, size, prob)
<bytecode: 0x113526220>
<environment: namespace:stats>

在Github镜像中搜索R gets me the this rbinom C function,但它只需要两个参数。 n在哪里? prob回收到n的长度在哪里?我在这个函数定义中找不到它。

double rbinom(double nin, double pp)
{
...
}

搜索all C files containing rbinom,我找到is this one的唯一其他相关的看似C文件,但我不明白。这是回收发生的地方,还是我缺少的另一个功能定义?

c r cran
1个回答
0
投票

在堆栈溢出的有用指导下,我设法满意地回答了这个问题。我不确定细节,但是这里有:

> rbinom

叫这行

rbinom <- function(n, size, prob) .Call(C_rbinom, n, size, prob)

位于/src/library/stats/R/distn.R的149号线

这反过来打电话

static R_INLINE SEXP random2(SEXP sn, SEXP sa, SEXP sb, ran2 fn, SEXPTYPE type)

sn=nsa=sizesb=probfn=rbinom

在该函数中,您想要的代码在第185行:qazxsw poi,它显示rbinom被称为回收size和prob参数。

random2和rbinom之间的连接是使用与函数random2相同的文件中的预处理器建立的。

rx = fn(ra[i % na], rb[i % nb]);
DEFRAND2_INT(rbinom)
© www.soinside.com 2019 - 2024. All rights reserved.