2014-05-08 55 views
4

我有一个包在Ubuntu 12.04下成功建立并且没有警告。该软件包是纯粹的R,并具有大约70个功能(大约2000 LOC)。当我尝试在Rstudio中的Windows 7下构建时,该包成功构建(无警告),但NAMESPACE仅包含十几个函数的export()。第一次发生在我身上,可能是因为我很少使用Windows。这发生在3.1和最新版本的Rstudio和roxygen2下。它发生在你身上吗?这可能是什么原因?roxygen2没有正确生成NAMESPACE

+11

最简单的方法是删除命名空间文件并让roxygen创建它。如果它存在,roxygen认为你自己制造了它,不会欺骗它 – rawr

+1

你有'@出口'所有70个功能吗? – hadley

+0

+ rawr,我确实尝试过,并没有奏效。 + hadley,我导出了大部分函数(可能只有一个没有导出),并且在Linux中NAMESPACE文件生成得很好。 – gappy

回答

0

我不知道它是否与您的问题有关(我希望自那时起就已经解决了...),但我也遇到了类似的问题,事实证明这是因为与我笨拙的命名约定。

通常,我写了函数名为plot.XXX(),其中XXX描述了应绘制的内容。 Roxygen将它们解释为S3对象系统的通用函数定义。然后XXX被认为是一个带有plot()函数的(非导出)类,并且相应地写了NAMESPACE文件,当然这不是我所期望的。我猜想str.XXX(),summary.XXX()等等,或者XXX.data.frame()等等都会发生同样的情况。我没有这些,但是如果它确实有意义的话。

为了解决这个问题,我用功能名称中的下划线替换了我的小圆点......并发现了S3/S4/S5的新可能性!