我很好奇n
中的dplyr
函数是如何编程的。评估n
env中的dplyr
时,我得到的就是:
function ()
{
stop("This function should not be called directly")
}
<environment: namespace:dplyr>
也许这是一个愚蠢的问题但是,它定义在哪里?如何调用其他一些函数?它隐藏在哪个环境中?
感谢您的帮助
答案 0 :(得分:6)
据我了解,dplyr
使用混合评估。这意味着它将评估C ++中表达式的某些部分以及R中的其他部分。n()
是C ++始终处理的函数之一。这就是为什么函数在R
中没有直接执行任何操作,除了返回错误,因为函数永远不会被R评估。
可以找到相关的C++
代码on github。