首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用R6类创建并记录包

使用R6类创建并记录包
EN

Stack Overflow用户
提问于 2016-02-23 15:20:40
回答 2查看 3.1K关注 0票数 9

我目前正在使用R6类创建我的第一个R包(:D),这要归功于RStudio、devtools和roxygen2。当我的包只包含函数时,我可以毫无问题地构建和加载它。但是,当我想记录R6类(在这个包https://cran.r-project.org/web/packages/data.tree/data.tree.pdf中有"Node“之类的字段和方法)时,RStudio不想构建这个包。我试着在论坛上找到窍门,但是关于这个问题的信息很少。

我的程序:

  1. 打开Rstudio,创建一个新项目,我选择"R包“
  2. 我填写包的名称,并选择我的包将基于的源文件(一个函数和3个类)。

在这一点上,这个过程是好的,因为我用"man“获得了正确的结构,描述了我的不同类,"R”使用了这些类的不同脚本。

但是,当我试图构建和重新加载包(预先加载了R6包)时,会出现一个错误:

代码语言:javascript
复制
==> 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 :)

提前感谢您的帮助!!

Cha

EN

回答 2

Stack Overflow用户

发布于 2016-02-23 16:47:32

非常感谢McFlick!

我刚从R6Class软件包的开发人员那里得到了一个答复。他们告诉我我只需要加一行

代码语言:javascript
复制
importFrom(R6, R6Class)

在命名空间文件中。而且工作正常!(我永远不会单独找到它:s)

此外,为了添加一些项,如继承、字段和方法,他们建议以具有预期结构的包中的.Rd为例。

最后,他们推荐了一本书http://r-pkgs.had.co.nz/,我想我会读它!!

再次感谢大家

票数 6
EN

Stack Overflow用户

发布于 2019-11-18 18:31:38

也许您应该在使用.R类的R6文件中包含以下内容,并让“devtools”负责创建命名空间文件

代码语言:javascript
复制
#' @importFrom R6 R6Class   
代码语言:javascript
复制
> devtools::check() # Will create the NAMESPACE file for you
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35581343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档