【发布时间】:2023-03-25 09:33:01
【问题描述】:
我知道在R中我们可以使用链运算符创建特殊函数,但是我如何知道链运算符的函数实现/代码?
如果我想查找函数的来源,我使用> functionname
但是当我试图找到运算符> "%*%" 的源代码时,它没有打印任何东西。有人可以帮助我如何找到上述链运算符的源代码吗?
【问题讨论】:
我知道在R中我们可以使用链运算符创建特殊函数,但是我如何知道链运算符的函数实现/代码?
如果我想查找函数的来源,我使用> functionname
但是当我试图找到运算符> "%*%" 的源代码时,它没有打印任何东西。有人可以帮助我如何找到上述链运算符的源代码吗?
【问题讨论】:
假设您正在谈论管道运算符,您需要使用 library 加载包 magrittr 或 dplyr。然后你需要使用反引号来访问函数定义:
library(dplyr)
`%>%`
给了
function (lhs, rhs) {
lhs <- substitute(lhs)
rhs <- substitute(rhs)
if (is.call(rhs) && identical(rhs[[1]], quote(`(`)))
rhs <- eval(rhs, parent.frame(), parent.frame())
...
【讨论】:
%*%`,它返回:`unction (x, y) .Primitive("%*%")`