问题标签 [roxygen]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
354 浏览

r - 使用 Roxygen 忽略文件

我在(并且不愿意学习)包创建/管理方面很新,所以如果我问一些琐碎的事情,请原谅我。不过,我对 很熟悉git,我想知道是否有与.gitignorein类似的功能roxygen。自从我使用ESS.,我经常有很多备份文件(*~),然后用R CMD roxygen. 当然,我想以更优雅的方式跳过它——现在我有一个 shell 脚本,find anolyzer/ -name "*~" -exec rm {} \;它可以刷新讨厌的备份……但我有点需要它们,只是想在安装时忽略它们。

免责声明:不愿 学习=不愿梳理冗长的手册,渴望整洁、快速和肮脏的单线

归功于约翰迈尔斯怀特强调“不情愿”的部分

0 投票
1 回答
3257 浏览

r - 通过 Roxygen 添加 useDynLib

我正在通过 roxygen2 包将我的包转换为使用 roxygen 文档。现在我的包没有加载,我认为这是因为 NAMESPACE 文件中缺少 useDynLib(mypackage) 调用。我如何生成这个?

0 投票
1 回答
9880 浏览

r - roxygen2 是否会自动为“Imports:”包编写 NAMESPACE 指令?

tl;我的问题的博士版本

如果我想导入包,我必须手动将import()指令写入我的 NAMESPACE 文件吗?roxygen2 似乎不会为我神奇地做到这一点,即使我在我的描述中将它们列为“Imports:”。

更完整的版本

这是一个非常愚蠢的问题,但我问是因为答案对我来说并不明显。

roxygen2用来处理我的 R 包文档。当我想确保导出一个函数时,我@export会在它的 roxygen 块中添加一个标签。随后的运行roxygenize()将相应地写入 NAMESPACE 指令。

但是,我的包目前导入了其他几个:

看起来虽然roxygen2 会为导出的函数重写 NAMESPACE 指令,但它不会自动重写 NAMESPACE 以反映我指定的应该在我的说明中导入的包。

0 投票
1 回答
1067 浏览

r - 在 Roxygen2 样式文档中转义“@”

假设我有一个评论块,我想在其中写一个电子邮件地址。我将如何转义“@”符号,以便 roxygen 将其视为文本而不是指令?

0 投票
1 回答
1354 浏览

r - 使用 roxygen 记录 setter 函数

我有一个函数,它只不过是attr为任何 R 对象做广告。基础演示:

这就像一个魅力,除了生成一个好的 Rd 文件,相关部分:

当然,它会在正常运行时触发R CMD check警告foo(var) <- value

任何提示都会非常感激!


更新:感谢richierocks,似乎有一个修复

0 投票
1 回答
636 浏览

r - R 在同一个包中使用 s3 和 s4 方法进行模拟

我对错误感到困惑

我编写了一个 R 包,其中包含一个作为 S3 方法的模拟()方法的定义。因为已经定义了模拟的泛型,所以我只定义了一个模拟.myclass(我的例子中是模拟.fitContinuous)。

该软件包还依赖于另一个具有 S4 版本模拟的软件包。加载我的包时,我收到上面的 S4 版本错误。我不确定是什么导致了错误。

通过从 github获取包的可重现示例,或者执行


要从头开始重现此错误:使用最少的说明文件创建一个新包。包括说明进口:哎哟。创建一个 NAMESPACE 并添加 imports(ouch) 和 S3method(simulate, test)。创建 R 目录,添加一个简单的 R 脚本(我已经包含了 roxygen 文档,它将生成我刚才提到的 NAMESPACE,但是这个错误也可以在没有 devtools/roxygen 的情况下创建):

安装包(如果你愿意,请先用 devtools 记录),然后你会得到错误。

到目前为止,我最好的解决方案是从 NAMESPACE 中删除 S3method 行,并导出完整的函数模拟.test。这将通过检查并在没有警告的情况下安装,但显然是一个较差的解决方案。

一个不同的解决方案是在依赖和导入中添加 ouch,并正确记录 S3 方法(如上)。然后一切都按预期工作,但警告消息仍然存在。

0 投票
2 回答
5727 浏览

r - 是否可以在 testthat 测试或 run_examples() 中使用 R 包数据?

我正在使用 devtools、testthat 和 roxygen2 开发 R 包。我在数据文件夹中有几个数据集(foo.txt 和 bar.csv)。

我的文件结构如下所示:

我很确定 'foo' 和 'bar' 记录正确:

我想在我的文档示例和单元测试中使用“foo”和“bar”中的数据。

例如,我想在我的 testthat 测试中使用这些数据集,方法是调用:

而且,我希望文档中的示例如下所示:

如果我在开发包时尝试调用 data(foo),则会收到错误“未找到数据集 'foo'”。但是,如果我构建包、安装它并加载它——那么我可以使测试和示例工作。

我目前的解决方法是不运行该示例:

在测试中,使用特定于我的本地计算机的路径预加载数据:

这似乎并不理想 - 特别是因为我正在与其他人合作 - 要求所有合作者都有相同的完整路径到 'foo' 和 'bar'。另外,文档中的示例看起来无法运行,即使安装了软件包,它们也可以。

有什么建议么?非常感谢。

0 投票
1 回答
2272 浏览

r - 如何使用 Roxygen2 添加没有通用别名的类特定别名?

一个简单的例子是我创建了一个扩展show,这是一个 S4 基础方法。我不想通过在我的包中重新记录来引起歧义分叉,show并且我还想通过为.showmyPkgSpClassshow,myPkgSpClass-method

我遇到的问题是,这会在 roxygen2 构建文档期间导致严重警告,Rd files with duplicated alias 'show':因为此包中有多个类扩展show,并且 roxygen2 已自动将通用术语添加到所有别名列表中相关*-class.Rd文件:

但我认为我不希望在任何情况下都使用通用别名,因为它会强制show在我的包和 base之间消除歧义show。此问题也适用于从其他包扩展的其他 S4 方法,除了show.

如果我将所有特定于类的方法标记到同一个.Rd文件,那么警告就会消失,但歧义仍然存在,因为show仍然会为该文档条目自动添加别名。如果我手动\alias{show}.Rd文件中删除,那么问题似乎解决了,在 roxygen 或R CMD check pkgname. 那么如何让 Roxygen2 不添加通用别名呢?

其他背景:

这是从上一期关于将 S4 扩展导出/记录到基本方法的问题中构建的一个特定问题: 是否有必要在 R 包中导出基本方法扩展?文档影响?

它比以下有关使用 Roxygen2 记录 S4 方法/类的问题更具体且未涵盖:

如何使用 roxygen2 正确记录 S4 方法

如何使用 Roxygen2 正确记录 S4 类插槽?

0 投票
2 回答
627 浏览

r - 在 R 中的 roxygen 文档中转义引号

我的文档中有一个需要转义引号的 R 函数示例:

(或者至少我不够聪明,无法避免转义引用)。虽然此命令在 R 中正常工作,但 roxygenize/document 函数将其转换为双转义

在 .Rd 文件中。我该如何解决这个问题?

0 投票
2 回答
16310 浏览

r - 在 Roxygen 中记录时:如何在 @details 中制作逐项列表?

例如,在@details 部分中,将逐项列表添加到 roxygen2 的适当语法是什么?我可以创建一个乳胶列表环境吗?

似乎换行符被简单地忽略了,即

谢谢!