devtools roxygen 包创建和 rd 文档

2023-11-24

我是 roxygen 的新手,正在努力了解如何使用它来快速创建新的/自定义的包。

IE。我想知道最低要求是制作一个名为package1 using devtools, roxygen2/3这样我就可以运行命令

require(package1)
fun1(20)
fun2(20)

分别生成 2000 和 4000 个随机法线

那么让我们举一个最简单的例子。

如果我有两个函数fun1 and fun2

fun1 <- function(x){
    rnorm(100*x)
}

and

fun2 <- function(y){
    rnorm(200*y)
}

参数是数字,返回值是数字。我很确定这不是 S3 方法,让我们将标题命名为 fun1 和 fun2....我不太确定我需要提供哪些其他信息。我可以把 fun1 和 fun2 分开.R文件并添加一些#'但我不确定是否包含 roxygen 的所有相关要求,也不确定要包含哪些相关要求以及如何使用它来创建与包一起使用的 rd 文档。我认为命名空间只有名称 fun1 和 fun2?包描述只是一些与我有关的通用信息......以及包的功能?

我们将很乐意收到任何分步指南。

编辑:下面是我要开始的距离......

我可以按照以下内容创建一个包...但不能使用 doxygen 来制作文档...

package.skeleton(list = c("fun1","fun2"), name = "package1")

这是我不确定我是否错过了一堆步骤的地方......

roxygenise("package1")

所以当尝试安装时我收到以下错误消息

system("R CMD INSTALL package1")
* installing to library ‘/Library/Frameworks/R.framework/Versions/2.15/Resources/library’
* installing *source* package ‘package1’ ...
** R
** preparing package for lazy loading
** help
Warning: /path.to.package/package1/man/package1-package.Rd:32: All text must be in a section
*** installing help indices
Error in Rd_info(db[[i]]) : 
  missing/empty \title field in '/path.to.package/package1/man/fun1.Rd'
Rd files must have a non-empty \title.
See chapter 'Writing R documentation' in manual 'Writing R Extensions'.
* removing ‘/Library/Frameworks/R.framework/Versions/2.15/Resources/library/package1’

我很惊讶@hadley说不要在他的包中使用 package.sculpturecomment。我会用package.skeleton,添加roxygen注释块,然后删除“man”目录下的所有文件并运行roxygenize。然而,既然哈德利说“Nooooooooooo”,那么这是minimum您需要能够构建一个通过 R CMD 检查并导出函数的包。

创建名为“package1”的目录。在该目录下,创建一个名为“DESCRIPTION”的文件并将其放入其中(如果您愿意,可以适当编辑它):

描述

Package: package1
Type: Package
Title: What the package does (short line)
Version: 0.0.1
Date: 2012-11-12
Author: Who wrote it
Maintainer: Who to complain to <[email protected]>
Description: More about what it does (maybe more than one line)
License: GPL

现在创建一个名为“R”的目录,并为每个函数添加一个文件(或者,如果需要,您可以将两个函数放在同一个文件中)。我创建了 2 个文件:fun1.R 和 fun2.R

fun1.R

#' fun1
#' @param x numeric
#' @export
fun1 <- function(x){
    rnorm(100*x)
}

fun2.R

#' fun2
#' @param y numeric
#' @export
fun2 <- function(y){
    rnorm(200*y)
}

现在你可以roxygenize你的包裹

R> library(roxygen2)
Loading required package: digest
R> list.files()
[1] "package1"
R> roxygenize("package1")
Updating collate directive in  /home/garrett/tmp/package1/DESCRIPTION 
Updating namespace directives
Writing fun1.Rd
Writing fun2.Rd

既然你提到了devtools在你的问题的标题中,你可以使用build and install开发工具中的函数

build('package1')
install('package1')

或者您可以退出 R 并使用 R 附带的工具来构建/检查/安装。

$ R CMD build package1
$ R CMD check package1_0.0.1.tar.gz
$ R CMD INSTALL package1_0.0.1.tar.gz 

现在,再次启动 R 以使用新包。

$ R --vanilla -q

library(package1)
fun1(20)
fun2(20)

但是,弄清楚最低要求不太可能对您(或您的软件包的用户)有太大帮助。研究使用的众多软件包之一会更好roxgen2.

这是 fun1.R 文件的更好版本,它仍然没有使用它可以使用的所有 roxygen 标签,但比最低限度要好得多

修改后的fun1.R

#' fun1
#'
#' This is the Description section
#'
#' This is the Details section
#'
#' @param x numeric. this is multiplied by 100 to determine the length of the returned vector
#' @return a numeric vector of random deviates of length \code{100 * x}
#' @author your name
#' @seealso \code{\link{fun2}}
#' @examples
#' fun1(2)
#' length(fun1(20))
#' @export
fun1 <- function(x){
    rnorm(100*x)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

devtools roxygen 包创建和 rd 文档 的相关文章

  • R:根据元素长度从向量中删除元素

    如何根据字符串的字符数或长度从字符串向量中删除元素 df lt c asdf fweafewwf af aewfawefwef awefWEfawefawef gt df 1 asdf fweafewwf af aewfawefwef aw
  • 如何在 R 中为回归量创建“宏”?

    对于长且重复的模型 我想创建一个 宏 在 Stata 中称为 宏 并通过以下命令完成 global var1 var2 其中包含回归量的模型公式 例如来自 library car lm income education prestige d
  • Django 中的 Rpy2 错误 - 未为“”类型的对象定义转换“py2rpy”

    我以前从未使用过 R 并且正在尝试使用 rpy2 从 python 调用 R 函数 它可以在独立的 python 终端上运行 但不能在 Django 中运行 但rpy2似乎无法将python字符串转换为r对象 我正在使用同事提供的自定义库
  • 如何使用 sprintf 函数在字符中添加前导“0”而不是空格?

    我正在尝试使用sprintf函数为字符添加前导 0 并使所有字符长度相同 然而我得到的是领先空间 My code a lt c 12 123 1234 sprintf 04s a 1 12 123 1234 我试图得到什么 1 0012 0
  • 在 Shiny 中叠加两个 ggplot

    我有一个非常大的数据集 我正在使用 ggplot 在 Shiny 上绘制它 我有一个与 x 轴上的值相关联的滑块 我想用它对选定的数据子集重新着色 并让其余数据保持原样 最简单的选择是重新创建整个绘图 但由于它是一个大型数据集 因此这是一个
  • stat_function 从函数生成平线

    我有以下代码 library ggplot2 f lt function x if x gt 2 1 x 0 3 else 0 graph lt ggplot data frame x c 0 10 aes x graph lt graph
  • 使用自定义渐变填充直方图箱

    我想在 R 和 ggplot2 中创建一个直方图 其中根据连续的 x 值填充箱 大多数教程仅通过离散值或密度 计数进行着色 下列的这个例子 https stackoverflow com questions 40284227 how to
  • 从 data.frame 中提取时用 NA 填充缺失的列

    我有一个函数 它将具有某些列的数据框作为输入 columns a b z 现在我有一个数据框DF只有很少的这些列DF columns f u z 如果列不在其中 如何创建一个包含所有值为 NA 的列的数据框DF这与DF在柱子上 f u z
  • 如何有效地将多个光栅 (.tif) 文件导入 R

    我是 R 新手 尤其是在空间数据方面 我正在尝试找到一种方法来有效地将多个 600 单波段栅格 tif 文件导入到 R 中 所有文件都存储在同一文件夹中 不确定这是否重要 但请注意 在我的 Mac 和 Windows 并行 VM 上的文件夹
  • R data.table 连接不等式条件

    我想使用 data table 包根据多个不等式条件对数据进行子集化 data table 手册中的示例展示了如何使用字符变量执行此操作 但不显示数字不等式 我还了解了如何使用子集函数来执行此操作 但我真的很想利用 data table 二
  • R闪亮:使用闪亮的JS从数据表中获取信息

    我想读出所有列名称以及它们在数据表中显示的顺序 由于不同的原因 我无法使用 stateSave 等选项 我对 JS 没有什么把握 但我确信用它可以完成 所以我需要你帮助我 我尝试过类似的代码片段 datatable data callbac
  • R data.table 多个条件连接

    我设计了一种解决方案 用于从两个单独数据表的多个列中查找值 并添加基于新列的值计算 多个条件比较 代码如下 它涉及在计算两个表中的值时使用 data table 和联接 但是 这些表没有联接在我正在比较的列上 因此我怀疑我可能无法获得 da
  • 根据 R 数据框中的名称对列进行平均

    我想知道是否有一种有效的方法来获取每组的平均值类似命名的列谁的名字结尾为 1S and 2S ex ex1S ex2S at time 1并取每组的平均值类似命名的列谁的名字结尾为 1C or 2C ex ex1C ex2C at time
  • R 错误:无法更改锁定绑定的值

    我试图估计无限数字流的平均值和标准差 当我运行代码时 出现错误消息 无法更改锁定绑定的值 我做了一些研究 发现这个错误与我使用全局变量有关 但我无法弄清楚 任何帮助将非常感激 在此先感谢您的帮助 define global variable
  • 如何在 R 中将字符串解析为层次结构或树

    有没有办法将表示组的字符串解析为 R 中的层次结构 假设我的小组结构如下 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 3 1 1 3 1 1 1 3 2 1 1 3 3 1 2 1 2 1 1 2 1 1 1 2 1 2 1
  • 更快的 %in% 运算符

    The 快速匹配 https cran r project org web packages fastmatch index html包实现了更快的版本match对于重复匹配 例如在循环中 set seed 1 library fastma
  • 排序因素与水平

    有人能解释一下 R 中 ordered 参数的用途吗 R says ordered逻辑标志来确定级别是否应被视为有序 按给定的顺序 所以如果我有一个名为名称的因素并设置ordered TRUE names lt factor c fred
  • RStudio 如何确定控制台宽度,为什么它似乎总是出错?

    我刚刚发现wid lt options width在 RStudio 中 它似乎是我日常控制台使用中令人烦恼的根源 或者更确切地说 更接近根源 我应该先说一下 我目前使用的是 R 3 2 2 RStudio 0 99 491 Linux M
  • 从 R 中的方差分析 (glm) 中提取残余偏差

    我在 R 中安装了一个 glm 模型并采用了方差分析表 我需要提取 残余偏差 列 但它会产生错误 以下是代码 创建数据 counts lt c 18 17 15 20 10 20 25 13 12 outcome lt gl 3 1 9 t
  • 通过使用 navbarPanel() 并隐藏导航栏构建多页闪亮应用程序用户端(在 ui.R 中)?

    我想构建一个多页闪亮应用程序 我可以在其中控制用户可以看到哪个页面 迪安 阿塔利确实这个演示应用程序中有类似的东西 https github com daattali advanced shiny tree master multiple

随机推荐

  • 全局变量 - 数据库连接?

    我试图连接到数据库 MySQLi 一次 但这样做时遇到问题 如何为整个脚本建立全局连接 有多个文件 index php classes config class php classes admin class php 等 我尝试过以下方法
  • 如何从 Android 应用程序发推文?

    我正在开发一个 Android 应用程序 并且希望具有在我的 Twitter 帐户 TWEET 上发送消息的功能 哪些 API 可用于此目的 代码示例将不胜感激 如果您只需要发送推文 这可以帮助您 String tweetUrl https
  • 任何 concurrent.futures 超时确实有效吗?

    尝试以便宜的方式编写基于进程的超时 同步 如下所示 from concurrent futures import ProcessPoolExecutor def call with timeout func args timeout 3 w
  • 如何使用 Google Drive API 一次删除多个文件

    我正在开发一个 python 脚本 它将文件上传到我的驱动器中的特定文件夹 我注意到 驱动器 api 为此提供了一个很好的实现 但我确实遇到了一个问题 如何一次删除多个文件 我尝试从驱动器中获取我想要的文件并组织它们的 ID 但没有运气 下
  • 当我有很多记录时,Postgres 函数返回一条记录?

    我有很多记录 我的简单查询返回 但当我使用函数时 它只给我第一条记录 首先我使用以下方法创建自己的数据类型 CREATE TYPE my type usr id integer name varchar 30 我的功能是 CREATE OR
  • PowerMockito:使用匹配器模拟静态方法时出现 InvalidUseOfMatchersException

    当我测试这个静态方法时 public class SomeClass public static long someMethod Map map String string Long l Log log with import org ap
  • 将文件保存到选定的目录中(javascript)

    你好 我的问题是关于javascript的 我想要1 要求用户选择一个目录2 然后将我的一堆文件写入其中 可能通过创建子目录 而不与用户交互 我怎样才能做到这一点 我可以吗 我是 javascript 新手 希望得到您的帮助 PS 我听说过
  • 如何使用 Jest 模拟封装在服务类中的 Winston 记录器实例

    我想嘲笑温斯顿记录器封装在使用 NestJS 创建的服务类中的实例 我在下面包含了我的代码 我无法从服务类中触发模拟的记录器实例 谁能解释我哪里出了问题 import as winston from winston import logge
  • Python 翻译多个字符

    我正在尝试在 python 3 3 3 中创建一个程序 它将接受一个字符串 然后将其转换为数字 1 26 我知道如何计算一位数字 但不知道如何计算 2 位数字 translist str maketrans 123456789 ABCDEF
  • 对 WooCommerce 中最便宜的购物车商品应用 100% 优惠券折扣

    我创建了一个 BOGOF 买一送一 优惠券 使用正常的 woocommerce 优惠券方法 该优惠券为用户提供购物车中其他 1 件商品 100 的折扣 优惠券设置 General 折扣类型 百分比折扣优惠券 amount 100 使用限制
  • 使用 Django 模型进行单元测试并涉及很多关系

    或者 如何设计数据库架构以方便进行单元测试 顺便说一句 这里有一个与此非常相似的问题 如何使用外键测试 Django 中的模型 我正在尝试为使用 Django 框架的项目遵循 TDD 方法 我正在创建和测试模型及其功能 保存方法 信号 以及
  • HAVING 不带 GROUP BY

    根据标准 SQL 以下可能吗 为了符合标准 如果还没有 需要进行哪些最小的更改 它在 MySQL 中按预期工作 当且仅当第一行具有最大值页数 SELECT FROM Book HAVING NumberOfPages MAX NumberO
  • 解释 d3js 投影基础知识

    我试图了解 d3 中地理投影的基础知识 以便我可以有效地旋转 缩放和平移坐标 投影的结果是否在默认 svg 坐标系中 原点位于左上角 正 y 值沿网格向下移动 或者结果是笛卡尔坐标系的 正 y 值在网格中向上移动 我进行了这个测试 a点位于
  • Android Studio 1.0RC4 Gradle 构建错误

    我刚刚下载了 Android Studio 1 0RC4 但无法构建任何项目 甚至是新创建的项目 我得到的错误是 错误 无法使用 Gradle 分发运行构建操作 https services gradle org distributions
  • git 归档来自远程的特定哈希

    我正在尝试从一个远程存储库获取一个目录 但我只想从特定的哈希中获取该文件 如果我使用带有 HEAD 的 git archive 一切正常 但是当我尝试使用特定的哈希时 git archive v format tar remote ssh
  • AngularJS:如何从window.history中删除当前视图url?

    I have load data使用微调器查看 数据加载完成后控制器重定向到不同的视图 location path show info 如何从历史记录中删除 load data 以避免window history back 到 load d
  • 如何通过一键登录流程使用适用于 JavaScript 的 Google API 客户端?

    我在用着Google 一键登录对用户进行身份验证 在用户通过身份验证后 我会获得访问令牌 我知道我可以使用此访问令牌来使用JavaScript 的 Google API 客户端 GAPI 但我找不到任何使用此访问令牌来使用 GAPI 的方法
  • Google Play 拒绝应用程序,因为它正在上传用户的联系信息

    由于以下原因 该应用程序已从 Google Play 商店中删除 APK 有显着的披露 但披露不充分您的应用正在上传用户的Contact信息至https domen com没有充分披露 由于应用程序是国际电话应用程序 我们使用了很多权限
  • 互斥锁和解锁函数如何防止 CPU 重新排序?

    据我所知 函数调用充当编译器屏障 但不充当 CPU 屏障 This tutorial说如下 获取锁意味着获取语义 而释放锁 意味着释放语义 其间的所有内存操作都是 包含在一个漂亮的小屏障三明治内 防止任何 跨边界的不良内存重新排序 我假设上
  • devtools roxygen 包创建和 rd 文档

    我是 roxygen 的新手 正在努力了解如何使用它来快速创建新的 自定义的包 IE 我想知道最低要求是制作一个名为package1 using devtools roxygen2 3这样我就可以运行命令 require package1