标签: roxygen

是否有可能/建议跳过roxygen以支持roxygen2?

我最近被指向Roxygen解决我的文档困境/懒惰.但是在这个闪亮的Roxygen2中,根据我的理解,它有点像它自己的东西.Hadley的包装工具需要使用Roxygen2,但在任何地方都没有通过走路的方式.

鉴于我在学习过程中从头开始:

  1. 是否有一个用户,对于新用户,有利于Roxygen而不是Roxygen2,或者Roxygen2在所有方面都更好?

  2. 如果有的话,有哪些资源用于学习(最好是那些不依赖于Roxygen先前知识的资源)?

  3. Roxygen2是否与Roxygen向后兼容(这样投入学习和写作Roxygen的时间会延续下去)?

r roxygen roxygen2

11
推荐指数
2
解决办法
1071
查看次数

Roxygen认为我的函数是一种S3方法,因此在安装我的软件包时会中断

我正在使用roxygen创建自己的包.我有一个导致问题的功能:

##' extract.sig.metadata
##' @param foo bar
##' @author me
##' @export
extract.sig.metadata <- function(foo){
# does stuff
}
Run Code Online (Sandbox Code Playgroud)

我已经创建了我的包骨架(使用devtools的create(my-package)),并且我使用了document()来处理roxygen标签.但是,当我尝试安装我的软件包时,它会失败:

... *安装帮助索引**构建软件包索引**测试是否可以加载已安装的软件包错误:加载命名空间'my-package'时找不到对象'extract'错误:加载失败执行停止

我很确定roxygen认为extract.sig.metadata是一个S3方法,即一种特殊形式的export(),但它没有找到函数export(),所以它正在破坏.但这不是一个s3方法,它只是一个名为extract.sig.metadata的函数.如果我查看Rd代码,/ usage标记看起来很奇怪:

\usage{
\method{extract}{sig.metadata}(spec.df, var = "product_name",
  ratio.cutoff = 0.001, prob.modifer = 3, frequency.cutoff = NA,
  verbose = F, assign.to.global.env = FALSE, use.bigrams = T, clean = T,
  ngram.dupe.n.cutoff = 0.1, max.obs = 10000)
}
Run Code Online (Sandbox Code Playgroud)

如果我确实将名称更改为extractSigMetadata,则问题在技术上已得到修复,并且.Rd代码会更改,

\usage{
 extractSigMetadata(foo)
}
Run Code Online (Sandbox Code Playgroud)

但我真的不想改变我的函数的名称(我的包中有几十个函数有相同的问题,并且它们被用在一堆脚本中 - 改变我的命名将是一个巨大的痛苦架构不).

--->有谁知道我怎么能告诉roxygen这只是一个正常的函数而不是奇怪的s3方法?我猜它与@method标签有关,但我不知道如何正确使用它来使这项工作.谢谢!!!

methods r package roxygen

11
推荐指数
1
解决办法
390
查看次数

使用RUnit或roxygen编写的R包是什么?

我正在写一个将被其他人使用的R包,所以我试图让这个正确!我想使用roxygen作为文档和RUnit进行单元测试,但我之前没有使用它们.

存在哪些包(在CRAN或其他地方)使用这些工具中的任何一个?

r roxygen

10
推荐指数
2
解决办法
1232
查看次数

如何在不将其添加到"逐份打印"字段的情况下记录数据集?

我正在roxygen2用于记录我正在开发的包的数据集.我知道你可以使用roxygen来记录数据集,但Shane的回答最终暗示了一个hack,而我宁愿避免.所以,我的问题是:

我应该在哪里放置数据的roxygen文档?

我目前有一个数据文档文件(anorexia.sub.roxygen)用于我/ R文件夹中的厌食症数据集

我的包目录

因为据我所知,这是roxygen2寻找它的唯一地方:

#' Family Treatment Weight change data for young female anorexia patients.
#' 

#' 
#' The MASS package includes the dataset \code{anorexia}, containing pre and
#' post treatment weights for young female anorexia patients.  This is a subset
#' of those data, containing only those patients who received Family Treatment.
#' 
#' 
#' @name anorexia.sub
#' @docType data
#' @format A dataframe with 17 observations on …
Run Code Online (Sandbox Code Playgroud)

r roxygen roxygen2

10
推荐指数
1
解决办法
1400
查看次数

Roxygen2 - 如何@export引用类生成器?

例如,假设我有以下包调用Test,我想导出类A:

# In /R/Test.R:
#' @docType package
#' @import methods
#' @exportClass A
A <- setRefClass("A", methods = list(foo = identity))
Run Code Online (Sandbox Code Playgroud)

但是,在构建和加载后,使用A的生成器时出现以下错误:

> library(Test)
> A()$foo(1)
Error: could not find function "A"
Run Code Online (Sandbox Code Playgroud)

我检查过我的NAMESPACE文件内容很好:

exportClasses(A)
import(methods)
Run Code Online (Sandbox Code Playgroud)

出了什么问题?为什么不导出我的类生成器?

r package roxygen reference-class roxygen2

10
推荐指数
1
解决办法
1706
查看次数

R:roxygen2,导入的包不会出现在命名空间中

我的项目中有一个文件:import_packages.r,包含以下内容:

#' @import reshape2
#' @import ggplot2
#' @import DESeq2
#' @import geneplotter
#' @import survcomp
#' @import gplots
#' @import pheatmap
#' @import RColorBrewer
Run Code Online (Sandbox Code Playgroud)

当我这样做时,devtools:document()这些包不会显示在NAMESPACE文件中,并且实际上并未导入它们.难道我做错了什么?

r roxygen roxygen2

10
推荐指数
1
解决办法
2033
查看次数

Roxygen可以忽略非用户功能吗?

我刚刚开始玩这个roxygen包,到目前为止我对结果非常满意.但是我想知道,有没有办法指明roxygen它应该忽略某些用户无法访问的功能?

具体来说,我宁愿没有.Rd弹出文件,因为我.onLoad()在我的包中使用了钩子.此功能已在base包中记录,因此我没有理由重新记录它.

r roxygen

9
推荐指数
1
解决办法
819
查看次数

R CMD roxygen无法识别

我刚尝试了Roxygen包.在R中,我可以浏览Roxygen Vignette中的示例.但是在命令行中,R CMD roxygen不会将其识别为有效命令.当我跑步时R CMD --help,我可以看到所有的INSTALL, check, ...sweave..., config...命令项而不是roxygen.任何人都可以帮助我吗?除了需要额外的安装步骤install.packages("roxygen")吗?我使用带有R 2.12.0的Windows 32和工作Rtools环境.谢谢.

r roxygen

9
推荐指数
2
解决办法
1211
查看次数

在包代码中从其他包的命名空间中查找对象

我正在重构一个导入许多其他包的完整命名空间的包。我相信这些依赖项中的许多用于单个函数调用用途,使用 importFrom 可以更好地处理它们,或者是不再使用的孤立依赖项。

包中有足够的代码,手动检查每一行寻找不熟悉的函数调用会很乏味。

如何确定在包中使用导入的命名空间中的对象的位置和次数?请注意,这个包不包括单元测试。

这是一个可重现的示例:

DESCRIPTION 文件:

Package: my_package
Title: title
Version: 0.0.1
Authors@R: person(
  given = "A",
  family = "Person",
  role = c("aut", "cre"),
  email = "person@company.com"
)
Description: Something
License: Some license
Encoding: UTF-8
LazyData: true
RoxygenNote: 7.1.1
Imports: 
  dplyr,
  purrr,
  stringr
Run Code Online (Sandbox Code Playgroud)

NAMESPACE 文件:

import(dplyr)
import(purrr)
import(stringr)
Run Code Online (Sandbox Code Playgroud)

my_package.R 文件:

#' my_package
#' @docType package
#' @name my_package
NULL
#' @import dplyr
#' @import purrr
#' @import stringr
NULL
Run Code Online (Sandbox Code Playgroud)

functions.R 文件

#' add 1 to "banana" column and …
Run Code Online (Sandbox Code Playgroud)

r devtools roxygen roxygen2 r-package

9
推荐指数
2
解决办法
196
查看次数

如何使用Roxygen2将`\ link {}`链接到Rd文件的特定部分?

假设我想链接到我的文档的"详细信息"部分以获取功能foo,我该怎么办? \link{foo:Details}似乎不起作用,那么正确的命令是什么?

r roxygen roxygen2

8
推荐指数
1
解决办法
247
查看次数

标签 统计

r ×10

roxygen ×10

roxygen2 ×6

package ×2

devtools ×1

methods ×1

r-package ×1

reference-class ×1