【发布时间】:2016-02-23 15:20:40
【问题描述】:
感谢 RStudio、devtools 和 roxygen2,我目前正在使用 R6 类创建我的第一个 R 包 (:D)。当我的包只包含函数时,我可以毫无问题地构建和加载它。但是当我想记录 R6 类时(在这个包https://cran.r-project.org/web/packages/data.tree/data.tree.pdf 中使用像“Node”这样的字段和方法),RStudio 不想构建包。我试图在论坛上找到窍门,但是关于这个问题的信息非常稀缺
我的程序:
- 打开Rstudio,新建一个项目,我选择“R包”
- 我填写了包的名称,并选择了我的包所基于的源文件(一个函数和 3 个类)。
-> 在这一点上,程序没问题,因为我用“man”和我的不同类的描述获得了正确的结构,“R”用这些类的不同脚本获得了正确的结构。
但是当我尝试构建和重新加载包(预先加载了 R6 包)时,会出现错误:
==> R CMD INSTALL --no-multiarch --with-keep.source esa
* installing to library ‘/home/cha/R/x86_64-pc-linux-gnu-library/3.0’
* installing *source* package ‘esa’ ...
** R
** preparing package for lazy loading
Error in eval(expr, envir, enclos) :
impossible de trouver la fonction "R6Class" (translation: impossible to find the function "R6Class")
Error : unable to load R code in package ‘esa’
ERROR: lazy loading failed for package ‘esa’
* removing ‘/home/cha/R/x86_64-pc-linux-gnu-library/3.0/esa’
* restoring previous ‘/home/cha/R/x86_64-pc-linux-gnu-library/3.0/esa’
Exited with status 1.
我不明白如何解决这个错误,因为 Rstudio 是对的:R6Class 不是函数!
我的问题:
我的程序正确吗?我该如何解决这个错误?
我需要知道 Rstudio 是否能够在 R 包构建中考虑 R6 类? 如果没有,我可以手动完成,但我只需要知道以停止尝试使用 RStudio 的时间:)
提前感谢您的帮助!!
恰
【问题讨论】:
-
您分享了您遇到的错误,但没有分享生成它的实际代码。请提供最小的reproducible example
-
事实上,没有那么多代码,因为我使用 RStudio 完成了所有过程(如我在问题中详述的步骤中所述)。我只有我的 R6class 代码(一个非常基本的代码): elem