从R包导出环境

时间:2012-12-22 08:05:44

标签: r mongodb devtools proto testthat

我正在开发一个包装rmongodb包的R包,并创建一个开发人员友好的界面来处理MongoDB。该软件包在内部使用proto

我想通过名为MongoDB的proto对象(环境)导出单个工厂方法,其定义为:

MongoDB <- proto(
  new = function(., ...) {
    # Good stuff in here...
  }
)

在开发过程中使用RStudio&amp; devtools并且在本地测试期间,这似乎不是问题。但是,我遇到了几个问题:

  • devtools::check()坚持在我的NAMESPACE文件中放置一个import(MongoDB),使R CMD check失败并且“不需要命名空间依赖:'MongoDB'”。

  • 当我删除此导入指令时,即使我手动添加R CMD checktestthat也会在运行export(MongoDB)测试时失败并显示“找不到对象'MongoDB'。但是,devtools::test()在RStudio中运行良好。

从R软件包导出proto对象(环境)的推荐方法是什么?

更新

根据下面的Gabor建议,我确保MongoDB.RdMongoDB声明为数据(链接有源)。我仍然在MongoDB无法在测试中看到失败(使用testthat)。我的DESCRIPTION文件为hereNAMESPACEhere

2 个答案:

答案 0 :(得分:3)

试试这个:

  1. export("MongoDB")文件中指定NAMESPACE,以使MongoDB原型对象公开。
  2. LazyData: yes文件中指定DESCRIPTION,以便在访问时自动加载。
  3. 添加一个.Rd文件,将其记录为数据集。
  4. 然后应该通过R CMD check

答案 1 :(得分:1)

该指令:

import(MongoDB)

表示您将MongoDB命名空间导入到包中。如果我理解正确,可能不是你想要的。

我认为您要导出MongoDB对象,然后

export(MongoDB) 

应该可以正常工作。