构建自己的包但加载后命名空间为空

Pha*_*ann 3 packages r rstudio roxygen2

我正在使用RStudio创建自己的软件包,到目前为止一直运行良好.当我现在通过RStudio的'Build Source Package'构建一个包(将包从我的Windows机器移动到Linux机器)时,一切似乎都很好.我在Linux机器上安装软件包,用require(或库)加载它,但是找不到任何功能!错误是object 'somefunction' not found并且myPackage::somefunction表示没有导出此类对象.事实上,如果我在RStudio中查看myPackage的环境,它会显示它是空的.

RStudio通过创作说:

==> roxygen2::roxygenize('.', roclets=c('rd', 'collate', 'namespace', 'vignette'))

First time using roxygen2. Upgrading automatically...
Writing NAMESPACE
Warnmeldung:
Paket 'nlme' wurde unter R Version 3.2.5 erstellt 
Documentation completed

==> Rcmd.exe build myPackage

* checking for file 'myPackage/DESCRIPTION' ... OK
* preparing 'myPackage':
* checking DESCRIPTION meta-information ... OK
* cleaning src
* checking for LF line-endings in source and make files
* checking for empty or unneeded directories
Removed empty directory 'myPackage/data'
* building 'myPackage_2.0.0.tar.gz'

Source package written to D:/Code
Run Code Online (Sandbox Code Playgroud)

我发现NAMESPACE我的项目文件只包含该行# Generated by roxygen2: do not edit by hand.在我的其他包(早期构建,暂时不重建)NAMESPACE包含exportPattern("^[[:alpha:]]+").

试图修复此问题(并手动编辑文件)我将此行复制到NAMESPACE'myPackage'.如果我现在在RStudio中执行'Build&Reload',它会在本地安装软件包,并根据需要查找所有功能.

==> Rcmd.exe INSTALL --no-multiarch --with-keep.source myPackage

* installing to library 'C:/Users/user/Documents/R/win-library/3.2'
* installing *source* package 'myPackage' ...
** libs
make: Nothing to be done for `all'.
installing to C:/Users/user/Documents/R/win-library/3.2/myPackage/libs/x64
** R
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (myPackage)
Run Code Online (Sandbox Code Playgroud)

但是,当我现在在RStudio中执行"构建源包"时,NAMESPACE再次修改为注释并再次出现相同的问题.所以我不知道如何创建包作为源包.

版本:R版本3.2.4修订版(所有软件包最新版本含义roxygen2_5.0.1),RStudio 0.99.896

Col*_*lin 11

我在尝试创建包时遇到了同样的问题.我把它加入到工作#' @export的每个功能之前,作为解释在这里.

@export条线很关键.这告诉Roxygen2将此函数添加到NAMESPACE文件中,以便用户可以访问它.对于您的第一个R包,您可能希望包含@export每个功能.