You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R中如何判断变量存储的函数与原函数是否相等?

在R中检查函数对象是否相等的方法

直接用==比较函数对象会报错,因为该运算符仅支持原子类型(如数值、字符)或列表,而函数属于专用的函数类型,无法通过==直接对比。以下是几种可行的检查方法:

  • 使用identical()函数(推荐)
    这是R中检查两个对象是否完全一致的标准方法,会对比对象的类型、属性、内存指向等所有特征,适用于绝大多数场景:

    a <- dplyr::mutate
    identical(a, dplyr::mutate)
    

    执行后会返回TRUE,因为a是对dplyr::mutate函数的直接引用,二者完全一致。

  • 对比函数体(适用于检查实现逻辑)
    如果需要确认两个函数的代码实现是否相同,可以用body()提取函数体后再对比:

    identical(body(a), body(dplyr::mutate))
    

    这种方法适合自定义函数的对比,或者需要验证函数逻辑未被修改的场景。

  • 检查内存地址
    通过address()查看对象的内存地址,若地址相同则说明是同一个对象实例:

    address(a) == address(dplyr::mutate)
    

    对于直接赋值得到的函数引用,该方法也会返回TRUE。

内容的提问来源于stack exchange,提问作者Eisen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 08:48:14