目录

  1. 新建R包项目
  2. 包命名,创建系统目录
  3. 删除man文件和NAMESPACE文件
  4. 编辑DESCRIPTION
  5. 编写函数/功能
  6. 添加函数/功能的帮助文档
  7. 添加内置数据(可不添加)
  8. 添加单元测试unit test(可不添加)
  9. 补全man和NAMESPACE文件
  10. 添加vignette文档(可不添加)
  11. 检查check()
  12. 包的创建与安装

具体步骤

1. 新建R包项目

依次点击
File -> New Project -> New Directory -> R Package


2. 给R包命名,创建R包项目所在的目录

注意:这里未勾选创建git仓库和使用项目的环境**

3. 点击R包项目所在文件夹,删除man和NAMESPACE两个文件

注意:删除的文件后续由roxygen2包自动生成

4. 编辑描述文档DESCRIPTION


主要是Title、Author、Maintainer、Description和内置数据LazyData(true表示有内置数据,false表示没有内置数据)

5. 编写相关的函数,保存到项目的R文件夹中;

6. 为函数写帮助文档(即输入“?函数名”后出现的帮助文档)

第一种方法:借助快捷指令生成,但是生成的信息太少,不推荐。
首先需要导入两个包:

library(devtools)
library(roxygen2)

然后双击打开函数文件后,光标放在该函数的.R文件上不动,在RStudio中使用Ctrl+Shift+Alt+R的快捷键,会自动帮你在原文件中生成一部分的注释信息,后续仍要补全信息。
第二种方法:直接复制(推荐)包含的内容更多,以下是样例(可直接复制)

#' @title Dynamic knapsack.
#' @description Creating dynamic algorithm to solve knapsack problem.
#' @details Input takes a data.frame x with two variables v and w and returns the maximum knapsack value and which elements (rows in the data.frame).
#' @param x A a data.frame x with two variables v and w.
#' @param W The knapsack size.
#' @return A list with the maximum knapsack value and which elements.
#' @export
#' @import
#' @importFrom
#' @examples

参考:http://personalbioinformatics.blogspot.com/2019/01/r.html
注意:谨慎添加example,因为在后面check的时候,RStudio会直接运行example,如果运行example的时候失败,同样会报错。
函数帮助文档如下图所示:

7. 添加包的内置数据(可不添加)

首先在R文件夹中新建脚本,命名为data.R(命名不固定,要和函数文件名区分),编写数据生成的方法。
注意:这里生成的数据都是比较小的,比如data.frame
参考14.1节:https://r-pkgs.org/data.html

然后,运行指令:

usethis::use_data(knapsack_objects)

knapsack_objects是数据集的名称(任意命名),它位于前的环境中,产生于前面的数据生成脚本,当然,也可以将任何位于当前环境中的数据集进行添加,只需更改数据集名字即可。
运行该指令后,将自动生成一个data文件夹,并将数据集保存该文件夹中,以.rda结尾的文件。

自动生成的data文件夹和.rda数据集:

8. 添加单元测试(可不添加)

首先运行指令:

usethis::use_testthat()

这个指令将执行以下的操作:
1、Create a tests/testthat directory.创建相关目录;
2、Add testthat to the Suggests field in the DESCRIPTION.在DESCRIPTION文件中补全(添加)单元测试的信息;
3、Create a file tests/testthat.R that runs all your tests when R CMD check runs. (You’ll learn more about that in automated checking.)创建一个testthat.R脚本,这个脚本负责运行单元测试,不需要人为修改;

然后编写测试程序,以.R结尾的脚本,放入tests testthat文件夹中;
单元测试脚本一般要自己写,少数情况能使用别人写好的脚本。
注意:不要人为修改testthat.R脚本,这是一个负责运行/启动单元测试的脚本。

然后,运行单元测试,输入以下指令:

devtools::test()



对照提示,更改所有报错

9. 自动补全man和NAMESPACE文件

自动生成这两个文件,运行:

library(devtools)
devtools::document()

注意:每次更新了.R文件后,都要运行这个代码更新.Rd文件;
man文件包含了函数的帮助文档

注意:man文件中的.Rd文件无法手动修改,为自动生成。如需修改,先删除man和NAMESPACE两个文件,再运行

devtools::document()

10. 添加vignette文档(可不添加)

运行指令:

usethis::use_vignette("my-vignette")

该指令将:

1.在R包项目文件中,创建一个 vignettes/ 目录;
2.向 DESCRIPTION 添加必要的依赖项(即,它向 Suggests 和VignetteBuilder 字段添加字段值 knitr);
3.起草一个vignette,vignette/my-vignette.Rmd。

之后编辑my-vignette.Rmd
更多编辑可以参考https://r-packages-zh-cn.readthedocs.io/zh_CN/latest/%E7%AC%AC%E4%B9%9D%E7%AB%A0%20Vignette%EF%BC%9A%E9%95%BF%E7%AF%87%E6%96%87%E6%A1%A3.html#vignette

11. 执行检查check()

会同时运行单元测试,下面的例子是没有包含单元测试的截图
运行代码:

check()

全绿则代表检查无误,“warning和notes都问题不大,主要看有没有errors,一般问题都出在函数的bug上,跟着系统的提示修改bug就可以了。”
参考:https://www.jianshu.com/p/46442fd976ed

也可以点击Build check来执行上述操作,结果是一样的。
注意:运行check()的同时,也会运行单元测试,未通过单元测试的错误一样会显示出来。

12. 点击Build Build source package

没有error的话,点击Build - Build source package,R会自动生成这个包,并加载这个包。
参考:https://www.jianshu.com/p/46442fd976ed


之后就可以正常使用这个包了,点击Install and Restart

R包制作(千字详细图文)相关推荐

  1. 进阶必看 | R包制作指南-windows系统

    R包制作指南 准备工作 开始创建R包 在Rstudio内完成R包构建    先前与大家分享过如何安装和使用R包,也与大家分享过自定义函数,这些都是R包的基础.一般来说,会将写好的函数进行封装,打包起来 ...

  2. 云服务器上安装 R语言 以及 RStudio Server 详细图文操作(全)

    目录 前言 1. 更换镜像源 2. 安装R 2.1 R包版本(最新) 3. 安装RStudio Server 4. 后续细节 4.1 关闭防火墙 4.2 入口规则(端口) 4.3 增加用户 5. 验证 ...

  3. STM32F103C8T6制作舵机测试仪详细图文教程 | 定时器触发ADC | DMA传输 | PWM输出 | RTC实时时钟 | USART串口输出 | OLED IIC显示

    自主学习STM32已有一周,先实现一个小demo,算是给自己一个动力叭,有目标的学习收获会更多.虽然本科也修了嵌入式课程,但那种走马观花式的学习,最后真正得到的知识实在寥寥无几.个人理解,学习STM3 ...

  4. 【MySQL】Spring Boot项目基于Sharding-JDBC和MySQL主从复制实现读写分离(8千字详细教程)

    目录 前言 一. 介绍 二. 主从复制 1. 原理 2. 克隆从机 3. 克隆从机大坑 4. 远程登陆 5. 主机配置 6. 从机配置 7. 主机:建立账户并授权 8. 从机:配置需要复制的主机 9. ...

  5. 【计算机网络】学习笔记:第二章 物理层(五千字详细配图)【王道考研】

    基于本人观看学习b站王道计算机网络课程所做的笔记,不作任何获利 仅进行交流分享 特此鸣谢王道考研 若有侵权请联系,立删 创作不易,本篇文章如果帮助到了你,还请点赞支持一下♡>

  6. 【计算机网络】学习笔记:第四章 网络层(七千字详细配图)【王道考研】

    基于本人观看学习b站王道计算机网络课程所做的笔记,不做任何获利 仅进行交流分享 特此鸣谢王道考研 若有侵权请联系,立删 如果本篇笔记帮助到了你,还请点赞 关注 支持一下 ♡>

  7. 如何制作自己的R包?

    摘自 方匡南 等编著<R数据分析-方法与案例详解>.电子工业出版社 R包简介 R包提供了一个加载所需代码.数据和文件的集合.R软件自身就包含大约30种不同功能的包,这些基本包提供了R软件的 ...

  8. r语言查找是否存在空值_关于R包安装你知道多少?

    在R语言的学习过程中离不了各种R包的安装与使用,要使用某个R包首先得学会如何安装该R包.对于R包的安装你知道的有多少?你知道如何指定安装路径吗?为何你每次重新打开R绘画都需要重新安装R包?今天小编带你 ...

  9. R语言 image.binarization: 包_想提高文章的引用率?写个R包吧!- 工具准备篇

    前言 R语言程序包是R语言的灵魂,是R语言的核心,每一个R语言用户都会使用到R包.2006年3月15日,第一个R包(coxrobust)加入CRAN,截止2020年5月17日,已经有超过15000个R ...

  10. 进阶必看 | R包上传github指南

    如何用git程序将本地R包上传到github 上传前的准备工作 1) 下载git程序 2) 创建github用户 3) 修改github用户的branch类型 上传的详细步骤指导 1) 使用git创建 ...

最新文章

  1. 【重磅】Tensorflow2.0实现29种深度强化学习算法大汇总
  2. mysql数据压缩加密_MySQL 加密/压缩函数
  3. 【Android 逆向】Frida 框架 ( Frida 框架使用环境 | Frida 框架作用 | Frida 框架模块 )
  4. 【Android 事件分发】事件分发源码分析 ( ViewGroup 事件传递机制 一 )
  5. 金立又推新机 欧新V908或近期发布 外观设计独到
  6. Boundary(2020多校第二场B)
  7. libevent学习笔记 一、基础知识
  8. mongodb聚合操作之group
  9. 电脑指定区域旋转_随州平板电脑无线管道潜望镜QV厂家_武汉天仪仪器
  10. linux的文件permission需要设置,否则会使用as3的urlrequest失败
  11. 【原创】Web前端性能优化思维导图
  12. 西南大学计算机考研学硕,西南大学心理学学硕343分考研经验
  13. OpenGG.Clean.Player{喜歡看視頻用戶強推}
  14. Androidstudio ADB调试
  15. web_socket 协同文档编辑
  16. Nginx做缓存服务器
  17. 此计算机当前已将连接限制为cmcc,完美的解决方案:猎豹wifi常见问题的解决方案...
  18. 车联网的精髓是服务-车联网服务
  19. MariaDB/Mysql数据库进阶知识
  20. cocos2dx 字体外发光_cocos2d-x位图字体生成工具bmfont使用图文教程 美术字使用

热门文章

  1. Linux系统下的软件安装
  2. Access数据库查询分页方法
  3. python爬虫英文翻译_python爬虫学习---爬取微软必应翻译(中英互译)
  4. 第一个十年,我从教师转行为web程序员,下一个十年呢?
  5. UniX和类UNIX系统入侵检测方法
  6. MT4 缠论双线MACD面积背离指标
  7. NGUI UIcenterOnChild
  8. MySQL数据库入门(超详细,多图解)
  9. 《Java 并发编程实战》
  10. 单片机CC2530学习笔记