R包制作(千字详细图文)
目录
- 新建R包项目
- 包命名,创建系统目录
- 删除man文件和NAMESPACE文件
- 编辑DESCRIPTION
- 编写函数/功能
- 添加函数/功能的帮助文档
- 添加内置数据(可不添加)
- 添加单元测试unit test(可不添加)
- 补全man和NAMESPACE文件
- 添加vignette文档(可不添加)
- 检查check()
- 包的创建与安装
具体步骤
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包制作(千字详细图文)相关推荐
- 进阶必看 | R包制作指南-windows系统
R包制作指南 准备工作 开始创建R包 在Rstudio内完成R包构建 先前与大家分享过如何安装和使用R包,也与大家分享过自定义函数,这些都是R包的基础.一般来说,会将写好的函数进行封装,打包起来 ...
- 云服务器上安装 R语言 以及 RStudio Server 详细图文操作(全)
目录 前言 1. 更换镜像源 2. 安装R 2.1 R包版本(最新) 3. 安装RStudio Server 4. 后续细节 4.1 关闭防火墙 4.2 入口规则(端口) 4.3 增加用户 5. 验证 ...
- STM32F103C8T6制作舵机测试仪详细图文教程 | 定时器触发ADC | DMA传输 | PWM输出 | RTC实时时钟 | USART串口输出 | OLED IIC显示
自主学习STM32已有一周,先实现一个小demo,算是给自己一个动力叭,有目标的学习收获会更多.虽然本科也修了嵌入式课程,但那种走马观花式的学习,最后真正得到的知识实在寥寥无几.个人理解,学习STM3 ...
- 【MySQL】Spring Boot项目基于Sharding-JDBC和MySQL主从复制实现读写分离(8千字详细教程)
目录 前言 一. 介绍 二. 主从复制 1. 原理 2. 克隆从机 3. 克隆从机大坑 4. 远程登陆 5. 主机配置 6. 从机配置 7. 主机:建立账户并授权 8. 从机:配置需要复制的主机 9. ...
- 【计算机网络】学习笔记:第二章 物理层(五千字详细配图)【王道考研】
基于本人观看学习b站王道计算机网络课程所做的笔记,不作任何获利 仅进行交流分享 特此鸣谢王道考研 若有侵权请联系,立删 创作不易,本篇文章如果帮助到了你,还请点赞支持一下♡>
- 【计算机网络】学习笔记:第四章 网络层(七千字详细配图)【王道考研】
基于本人观看学习b站王道计算机网络课程所做的笔记,不做任何获利 仅进行交流分享 特此鸣谢王道考研 若有侵权请联系,立删 如果本篇笔记帮助到了你,还请点赞 关注 支持一下 ♡>
- 如何制作自己的R包?
摘自 方匡南 等编著<R数据分析-方法与案例详解>.电子工业出版社 R包简介 R包提供了一个加载所需代码.数据和文件的集合.R软件自身就包含大约30种不同功能的包,这些基本包提供了R软件的 ...
- r语言查找是否存在空值_关于R包安装你知道多少?
在R语言的学习过程中离不了各种R包的安装与使用,要使用某个R包首先得学会如何安装该R包.对于R包的安装你知道的有多少?你知道如何指定安装路径吗?为何你每次重新打开R绘画都需要重新安装R包?今天小编带你 ...
- R语言 image.binarization: 包_想提高文章的引用率?写个R包吧!- 工具准备篇
前言 R语言程序包是R语言的灵魂,是R语言的核心,每一个R语言用户都会使用到R包.2006年3月15日,第一个R包(coxrobust)加入CRAN,截止2020年5月17日,已经有超过15000个R ...
- 进阶必看 | R包上传github指南
如何用git程序将本地R包上传到github 上传前的准备工作 1) 下载git程序 2) 创建github用户 3) 修改github用户的branch类型 上传的详细步骤指导 1) 使用git创建 ...
最新文章
- 【重磅】Tensorflow2.0实现29种深度强化学习算法大汇总
- mysql数据压缩加密_MySQL 加密/压缩函数
- 【Android 逆向】Frida 框架 ( Frida 框架使用环境 | Frida 框架作用 | Frida 框架模块 )
- 【Android 事件分发】事件分发源码分析 ( ViewGroup 事件传递机制 一 )
- 金立又推新机 欧新V908或近期发布 外观设计独到
- Boundary(2020多校第二场B)
- libevent学习笔记 一、基础知识
- mongodb聚合操作之group
- 电脑指定区域旋转_随州平板电脑无线管道潜望镜QV厂家_武汉天仪仪器
- linux的文件permission需要设置,否则会使用as3的urlrequest失败
- 【原创】Web前端性能优化思维导图
- 西南大学计算机考研学硕,西南大学心理学学硕343分考研经验
- OpenGG.Clean.Player{喜歡看視頻用戶強推}
- Androidstudio ADB调试
- web_socket 协同文档编辑
- Nginx做缓存服务器
- 此计算机当前已将连接限制为cmcc,完美的解决方案:猎豹wifi常见问题的解决方案...
- 车联网的精髓是服务-车联网服务
- MariaDB/Mysql数据库进阶知识
- cocos2dx 字体外发光_cocos2d-x位图字体生成工具bmfont使用图文教程 美术字使用