问题标签 [roxygen2]

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 回答
358 浏览

r - Roxygen2 将 \n 引入默认参数值。导致 Codoc 不匹配

我有这篇文章的相反问题。似乎 roxygen 正在引入\n我的默认参数值,这导致 R CMD 检查警告

这是我的函数定义:

这是警告:

我在这里错过了什么吗?

0 投票
1 回答
1074 浏览

r - 使用 roxygen2 标记 @inheritParams 时,.Rd 文件中的参数描述顺序

假设我正在编写一个小型 R 包,其中包括两个函数,除了一个之外,它们的参数完全相同。这是一个例子:

在我的第一个函数的 roxygen2 文档中,我使用以下标签:

对于第二个功能,我使用以下标签:

在使用 roxygenize 处理我的代码后,函数 fct2 的 .Rd 文件按以下顺序显示参数:p、r、K。我希望它们的顺序与使用部分中的顺序相同,即:r, p, K. 如何在不手动更改 .Rd 文件的情况下获得此订单?

我坚持使用@inheritParams 来避免复制和粘贴。

谢谢!

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 回答
1354 浏览

r - 使用 roxygen 记录 setter 函数

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

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

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

任何提示都会非常感激!


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

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 投票
1 回答
928 浏览

r - 无法从 Rscript 批处理文件中调用 roxygenize 函数

我正在编写一个使用 roxygen2 自动对我的包进行 roxygenize 的脚本。我希望它是可执行的,以便它可以成为准备和安装包的更大脚本的一部分,但由于某种原因我不能使它与 Rscript 一起使用。

这是代码:

如果我启动交互式 R 会话或使用 R CMD BATCH 提交代码,这将正常工作。但是,如果我通过 Rscript 直接将脚本作为可执行文件运行,我会得到这个输出和错误(无论脚本是在当前目录还是 bin 中,我都会得到错误)。

看起来 setPackageName 在 base R 中,所以我不知道为什么它不存在。此外,我在许多其他情况下使用 Rscript,这似乎是它失败的唯一地方。

任何帮助深表感谢。

0 投票
2 回答
627 浏览

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

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

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

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

0 投票
1 回答
1241 浏览

r - 如何在 R 帮助文件/roxygen2 中交叉引用方程

我正在为我正在制作的 R 包记录我的一些功能。

我正在使用 roxygen 标记,尽管这在很大程度上与我的问题无关。

我已经将方程式放入我的文档中,使用\deqn{...}. 我的问题是: 以后有没有办法交叉引用这个等式?

例如,在我的 Rd 文件中:

我以后可以做类似的事情吗:

参考方程 \ref{test}, ...

我试过了\eqref{test}\ref{test}(它们都得到“未知宏”并且没有得到链接),而且\link{test}(它抱怨它找不到函数test,因为它实际上只是为了链接到其他函数)。

否则我担心我可能不得不做一些hacky并在Rd文件的etc中手动-- (1)添加和...Refer to equation (1) \deqn

更新

一般的答案似乎是“不”。(哇……)

但是,我可以写一个小插图并在那里使用“普通”乳胶/包。无论如何,我刚刚注意到我花了很长时间放入我的 roxygen/Rd 文件的矩阵方程?myFunction在帮助版本中看起来很糟糕(它们显示为几乎字面的乳胶源)。真可惜,因为它们在 pdf 版本的帮助中看起来很漂亮。

@Iterator 指出了条件文本的存在,所以我将在 .Rd 文件中进行 ASCII 数学运算,但在 pdf 手册/插图中进行乳胶数学运算。