【问题标题】:R chain operator usageR链运算符用法
【发布时间】:2023-03-25 09:33:01
【问题描述】:

我知道在R中我们可以使用链运算符创建特殊函数,但是我如何知道链运算符的函数实现/代码?

如果我想查找函数的来源,我使用> functionname

但是当我试图找到运算符> "%*%" 的源代码时,它没有打印任何东西。有人可以帮助我如何找到上述链运算符的源代码吗?

【问题讨论】:

    标签: r function


    【解决方案1】:

    假设您正在谈论管道运算符,您需要使用 library 加载包 magrittrdplyr。然后你需要使用反引号来访问函数定义:

    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())
        ...
    

    这里解释了原因Function name in single quotation marks in R

    【讨论】:

    • 感谢您的回答!不,我说的是 * 运算符。如何找到 %*% 的来源
    • @Nambari 你可以使用:`%*%`,它返回:`unction (x, y) .​​Primitive("%*%")`
    • 好的,当我使用反勾号时,它给了我 .Primitive("%*%"),现在我需要弄清楚如何找到这些原始函数的源代码。谢谢!
    • @RStudent:谢谢!看来我们几乎同时发表了评论。
    • 这个question 可以给出一些提示。这是在 R 源代码中搜索 do_matprod。你似乎是对的。
    猜你喜欢
    • 2019-09-06
    • 2016-02-09
    • 2012-05-10
    • 1970-01-01
    • 1970-01-01
    • 2023-01-13
    • 1970-01-01
    • 2018-11-10
    相关资源
    最近更新 更多