问题标签 [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.
r - 使用 Roxygen 忽略文件
我在(并且不愿意学习)包创建/管理方面很新,所以如果我问一些琐碎的事情,请原谅我。不过,我对 很熟悉git
,我想知道是否有与.gitignore
in类似的功能roxygen
。自从我使用ESS
.,我经常有很多备份文件(*~
),然后用R CMD roxygen
. 当然,我想以更优雅的方式跳过它——现在我有一个 shell 脚本,find anolyzer/ -name "*~" -exec rm {} \;
它可以刷新讨厌的备份……但我有点需要它们,只是想在安装时忽略它们。
免责声明:不愿 学习=不愿梳理冗长的手册,渴望整洁、快速和肮脏的单线
归功于约翰迈尔斯怀特强调“不情愿”的部分
r - 通过 Roxygen 添加 useDynLib
我正在通过 roxygen2 包将我的包转换为使用 roxygen 文档。现在我的包没有加载,我认为这是因为 NAMESPACE 文件中缺少 useDynLib(mypackage) 调用。我如何生成这个?
r - roxygen2 是否会自动为“Imports:”包编写 NAMESPACE 指令?
tl;我的问题的博士版本
如果我想导入包,我必须手动将import()
指令写入我的 NAMESPACE 文件吗?roxygen2 似乎不会为我神奇地做到这一点,即使我在我的描述中将它们列为“Imports:”。
更完整的版本
这是一个非常愚蠢的问题,但我问是因为答案对我来说并不明显。
我roxygen2
用来处理我的 R 包文档。当我想确保导出一个函数时,我@export
会在它的 roxygen 块中添加一个标签。随后的运行roxygenize()
将相应地写入 NAMESPACE 指令。
但是,我的包目前导入了其他几个:
看起来虽然roxygen2
会为导出的函数重写 NAMESPACE 指令,但它不会自动重写 NAMESPACE 以反映我指定的应该在我的说明中导入的包。
r - 在 Roxygen2 样式文档中转义“@”
假设我有一个评论块,我想在其中写一个电子邮件地址。我将如何转义“@”符号,以便 roxygen 将其视为文本而不是指令?
r - 使用 roxygen 记录 setter 函数
我有一个函数,它只不过是attr
为任何 R 对象做广告。基础演示:
这就像一个魅力,除了生成一个好的 Rd 文件,相关部分:
当然,它会在正常运行时触发R CMD check
警告foo(var) <- value
。
任何提示都会非常感激!
更新:感谢richierocks,似乎有一个修复
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 方法(如上)。然后一切都按预期工作,但警告消息仍然存在。
r - 是否可以在 testthat 测试或 run_examples() 中使用 R 包数据?
我正在使用 devtools、testthat 和 roxygen2 开发 R 包。我在数据文件夹中有几个数据集(foo.txt 和 bar.csv)。
我的文件结构如下所示:
我很确定 'foo' 和 'bar' 记录正确:
我想在我的文档示例和单元测试中使用“foo”和“bar”中的数据。
例如,我想在我的 testthat 测试中使用这些数据集,方法是调用:
而且,我希望文档中的示例如下所示:
如果我在开发包时尝试调用 data(foo),则会收到错误“未找到数据集 'foo'”。但是,如果我构建包、安装它并加载它——那么我可以使测试和示例工作。
我目前的解决方法是不运行该示例:
在测试中,使用特定于我的本地计算机的路径预加载数据:
这似乎并不理想 - 特别是因为我正在与其他人合作 - 要求所有合作者都有相同的完整路径到 'foo' 和 'bar'。另外,文档中的示例看起来无法运行,即使安装了软件包,它们也可以。
有什么建议么?非常感谢。
r - 如何使用 Roxygen2 添加没有通用别名的类特定别名?
一个简单的例子是我创建了一个扩展show
,这是一个 S4 基础方法。我不想通过在我的包中重新记录来引起歧义分叉,show
并且我还想通过为.show
myPkgSpClass
show,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 方法/类的问题更具体且未涵盖:
r - 在 R 中的 roxygen 文档中转义引号
我的文档中有一个需要转义引号的 R 函数示例:
(或者至少我不够聪明,无法避免转义引用)。虽然此命令在 R 中正常工作,但 roxygenize/document 函数将其转换为双转义
在 .Rd 文件中。我该如何解决这个问题?
r - 在 Roxygen 中记录时:如何在 @details 中制作逐项列表?
例如,在@details 部分中,将逐项列表添加到 roxygen2 的适当语法是什么?我可以创建一个乳胶列表环境吗?
似乎换行符被简单地忽略了,即
谢谢!