我正在开发我的第一个软件包 - 好吧,实际上我正在打包一些现有代码 - 在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()
吗?这似乎有点多余,此时我想我会停下来,看看有人能在我进一步打破之前让我直截了当...
答案 0 :(得分:1)
<强>被修改强>
我不明白为什么会这样,但你需要在你的包导入中添加methods
:
添加到您的DESCRIPTION
:
Imports: methods
加入您的NAMESPACE:
import(methods)