从我自己的包中使用sp(空间包)会导致错误:找不到函数

时间:2014-08-12 12:37:16

标签: r sp geosphere

我正在开发我的第一个软件包 - 好吧,实际上我正在打包一些现有代码 - 在RStudio中。我用roxygen2标记了所有注释,这产生了一个正确的NAMESPACE文件,其中包括:

import(sp)
importFrom(geosphere,distMeeus)
importFrom(geosphere,distm)

我使用geosphere包中的distm()函数来计算距离矩阵,但它失败了:

  

.pointsToMatrix(x)出错:找不到函数" is.projected"   4 .pointsToMatrix(x)   3 petm(OCC,SPAD,fun = distMeeus)at peta.R#79

现在is.projected()位于我已导入的sp包中,因此它应该在我的搜索路径中。不应该吗?

作为一个实验,我在调用我的包代码之前调用了library(geosphere)(它也加载了sp),我的函数已经超过了这一点。 Soooo,我还需要为每个包调用library()吗?这似乎有点多余,此时我想我会停下来,看看有人能在我进一步打破之前让我直截了当...

1 个答案:

答案 0 :(得分:1)

<强>被修改

我不明白为什么会这样,但你需要在你的包导入中添加methods

  • 添加到您的DESCRIPTION

    Imports: methods
    
  • 加入您的NAMESPACE:

    import(methods)