gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 07:53:36 25 4
gpt4 key购买 nike

我正在使用 RStudio 创建自己的包,到目前为止效果很好。当我现在通过 RStudio 的“构建源包”构建一个包(将包从我的 Windows 机器移动到 Linux 机器)时,一切似乎都很好。我在Linux机器上安装了这个包,用require(或library)加载它,但是找不到任何功能!错误是 object 'somefunction' not foundmyPackage::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

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

尝试修复此问题(并手动编辑文件)我将此行复制到 NAMESPACE '我的包裹'。如果我现在在 RStudio 中执行“构建和重新加载”,它会在本地安装包并根据需要查找所有功能。
==> 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)

但是当我现在在 RStudio 中执行“构建源包”时, NAMESPACE再次修改为评论,同样的问题再次发生。
所以我不知道如何创建包作为源包。

版本:R 版本 3.2.4 修订版(所有包都是最新的,意思是 roxygen2_5.0.1),RStudio 0.99.896

最佳答案

我在尝试创建包时遇到了同样的问题。我通过添加 #' @export 让它工作在每个函数之前,如 here 所述.

The @export line is critical. This tells Roxygen2 to add this function to the NAMESPACE file, so that it will be accessible to users. For your first R package, you’ll probably want to include @export for each of your functions.

关于r - 构建自己的包但加载后命名空间为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37022178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com