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

使用butteR包closest_distance_rtree函数报错:'knn.RTree'未从rtree命名空间导出

解决knn.RTree未导出的错误问题

这个错误的核心是butteR包调用了rtree包中未对外导出的内部函数knn.RTree,通常是两个包的版本不兼容导致的。以下是针对性解决思路:

  • 匹配rtree与butteR的依赖版本
    先查看当前rtree版本:

    packageVersion("rtree")
    

    再去butteR的GitHub仓库查看DESCRIPTION文件里的依赖声明,确认它要求的rtree版本号。如果当前版本不匹配,安装指定版本:

    # 示例:安装0.1.7版本的rtree
    devtools::install_version("rtree", version = "0.1.7", repos = "http://cran.us.r-project.org")
    
  • 临时调用内部函数替代(不推荐长期使用)
    若暂时无法调整版本,可复制butteR::closest_distance_rtree的源码,将其中的rtree::knn.RTree替换为rtree:::knn.RTree(三个冒号调用内部函数),自定义函数使用:

    my_closest_distance_rtree <- function(coords, master) {
      rtree_obj <- rtree::RTree$new(data = master)
      result <- rtree:::knn.RTree(rtree_obj, coords, k = 1)
      # 保留原函数后续的处理逻辑
      # ...
    }
    # 调用自定义函数
    matched_coordinates <- my_closest_distance_rtree(coordinates, master_settlement_list)
    
  • 向butteR开发者反馈bug
    这属于版本兼容类问题,建议直接在butteR的GitHub仓库提交issue,说明你遇到的错误和使用的包版本,推动开发者更新依赖或调整函数调用逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 19:55:33