10分钟R极简包超详细教程

为什么要有属于自己的pakage

  • 简化重复性的工作
  • 更便捷的与他人分享代码
  • 梦想可以在CRAN上发表

一个可安装的R包的结构

  • R目录 (存放code,一般是函数)
  • man目录 (Rd文件,存放函数说明文件)
  • NAMESPACE文件(说明从其他包引用的函数,以及我们的包生成的函数)
  • DESCRIPTION文件 (注明包的作者,依赖关系,许可证书等)
  • Data(存放数据,有些R包就是专门的数据包)
  • Vignettes (使用说明)
  • 等等…

以上只有前四部份是必要的结构,因为今天只是希望快速建立自己的R包,具体细节和其他部分会在后续文章说明。这四个部分中只有第一和第四部分是需要手写,第二部分简单的代码就可以完成,第三部分暂时不用管

开发环境和工具

win 10
Rstudio
R (version 3.6.0)
需要使用的R包:devtools;roxygen2

创建项目

> # 清空内存
> rm(list=ls()) 
> 加载包
> library(devtools)
> library(roxygen2)
> #设置工作路径,后续的R包就生成在这里,我是在D盘
> setwd("D:/")
> # 创建R包,这里要注意取名时要尽量简洁易懂,且不要和已有的CRAN上的包重复
> create_pakage("toolr")

此时一个新的rstudio窗口自动打开
在这里插入图片描述
注意界面的左上角标明了项目的路径
在这里插入图片描述
打开D盘可以看到多了一个叫做toolr的文件夹,我们也可以从Rstudio界面的右下角看到这个文件夹
在这里插入图片描述
之前提到的四大必要组成部分除了man目录,都在其中了。

编写函数

直接Ctr+Shif+N新建一个R脚本,并将以.R文件的格式保存在toolr中的R目录下,文件名最好是简易标明函数功能,方便以后查看,这里我的.R文件名为sumtwo
在这里插入图片描述

在sumtwo中建立一个求和函数
在这里插入图片描述

编写roxygen

roxygen其实就是对函数的注释,只是在编写包时要使用已经规范的格式

  • @param 标明参数的含义
  • @return 标明输出结果的格式
  • @export 标明该函数是在加载包后可以直接使用的,如果没有这个参数,加载包后要用toolr:::sumtwo的格式调用函数
  • @example 标明例子

快捷键Ctrl+Shift+Alt+R添加roxygen模板
在这里插入图片描述
在模板上做一些修改
在这里插入图片描述
保存

添加man目录

一行代码即可,但是一定要注意:代码不要在sumtwo.R的脚本中写,最好是新开一个脚本,或者在sumtwo.R中写完运行后删除

> document("D:/toolr")

其中的"D:/toolr"也可替换为"."
此时在toolr目录下可以看到man文件夹了,man目录下有一个sumtwo.Rd文件,其中记录着对sumtwo函数的解释

修改DESCRIPTION

打开description,可以看到需要修改的部分有标题、版本号、作者信息、描述、许可证书(自用的话可以先不去理解它)等等
在这里插入图片描述
我在这里大致做了一些修改,其中Authors@R一栏可以添加多人,每个人的信息包含在一个person()中,role表示角色,具体antcre指代什么后续再说
在这里插入图片描述
记得保存

BUILD

到此处,toolr包的准备工作已经完成,build之后就可以使用了!

> #先加载pkgbuild包
> library(pkgbuild)
> build(path="D:/toolr")
[1] "D://toolr_1.0.0.tar.gz"

此时检查D盘会发现,出现了一个后缀为.tar.gz的文件,这就是我们建立起来的R包!

安装并测试

在Rstudio右上角关闭项目
在这里插入图片描述
新开一个Rstudio界面,安装toolr

> # 安装并load
> install.packages("D:/toolr_1.0.0.tar.gz",repos = NULL,type = "source")
> library(toolr)
> # 查看包中函数
> ls("package:toolr")
[1]  "sumtwo"
> # 测试
> sumtwo(1.2,3)
[1] 4.2
> sumtwo("1",2)
[1] Error in sumtwo("1", 2) : input must be numeric

到此为止,一个极简的R包就建立完成了,后续我将尝试加入更多的函数,完善一些细节和可加入的结构,并发布至GitHub
我要考研了,今年12月之后更新。

上传至github

打开github,新建一个repo,我这里命名为R_code,然后将本地文件夹toolr上传至该repo即可。

从github安装toolr

library(devtools)
options(download.file.method = "libcurl")  #防止链接出现问题
install_github("josephcui/R_code/toolr")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值