R

您所在的位置:网站首页 r语言自己编写函数 R

R

2024-06-16 06:02| 来源: 网络整理| 查看: 265

总结一下目前学习的,基于Rstudio的创建R包流程。

Part1:创建R包基本流程 step1:建立R包开发环境 目的是创建一个文件夹,用于储存编写R包的各种文档;在创建之前想 好R包的名字,以及文件夹的路径。 这里示例R包名为newPackage。 进入Rstudio界面,依次点击File → New project → New Directory → R package,会出现如下界面,填写好R包名字,选择好开发包的工作目录(其它暂时都不用考虑);最后点击Creat Project即可。

如上操作后,会进入新的工作环境,即R包开发环境;同时已经创建好R包开发所需的所必须的模板文档。主要包括4个部分:

(1)R 文件夹:用于存放R函数脚本的文件夹;里面有一个示例文件hello.R (2)man 文件夹:用于存放对应上述R函数的说明文档Rd文件的文件夹;里面有一个示例文件hello.Rd。 (3)DESCRIPTION:关于R包的说明文档。 (4)NAMESPACE:声明R包导出以供外部使用的函数以及R包从其他包导入的外部函数。

其中只有R函数脚本与DESCRIPTION需要我们细心准备外,其它可通过一些办法自动写入、更新。

step2:编写函数 2.1 首先先删除R文件夹里的示例文件、整个man文件夹、NAMESPACE文件; 2.2 然后在R文件夹内创建后缀名为.R的函数脚本,编写自定义的函数;

(1)如下在新创建的add.R脚本中,编写一个简单的加法函数。

(2) 然后鼠标放置在函数上(如上图),按Ctrl+Alt+Shift+R组合快捷键为函数添加说明文档模板(Insert Roxygen Skeleton)(下左);根据自己函数的功能完成注释(下右)

(3)测试编写的函数,有没有问题

#激活R文件夹内的所有函数,供测试使用 devtools::load_all() # i Loading newPackage add(1,6) # [1] 7

重复上述1~3步骤,不断添加新的函数。可以是一个函数对应一个脚本,也可以将同一类的函数都放置在一个脚本内。

(4)为所有函数在man文件夹(如果没有,会创建)下逐一自动建立Rd文档,以及更新NAMESPCAE文档 # 重复上述1~3步骤,又创建了一个减法的函数脚本 devtools::document() # i Updating newPackage documentation # i Loading newPackage # Writing NAMESPACE # Writing NAMESPACE step3:编写DESCRIPTION文件 函数写好了之后,就需要对这个包的总体功能等信息进行描述与说明,这些信息主要包含在DESCRIPTION文件中 3.1 先如下图所示,修改其中的四点说明:Title包的名字,Authors@R、Maintainer作者以及维护者信息、Description包的简要描述 3.2 然后使用下述函数,自动编写License部分 # 如果没有依赖到别的具有不同版权的第三方包的话,一般选择最为广泛使用的 MIT 即可 usethis::use_mit_license()

此外,如果版本有更新,可手动修改 Version部分

3.3 之后再补充依赖包的信息。分为两类:Imports、Suggests、Depends。 三者的区别还没完全清楚,暂时觉得还是第一个常用。 可使用函数usethis::use_package(package, type = "Imports", min_version = NULL); 假设其中的一个自定义的函数必须要用到dplyr包的filter()函数(因为实际中并未没有使用,之后会删去) usethis::use_package("dplyr", type = "Imports", min_version = "1.0") # √ Adding 'dplyr' to Imports field in DESCRIPTION # * Refer to functions with `dplyr::fun()` # 在函数脚本中使用的过程调用其它包的函数时,必须按照`package::function`,如`dplyr::filter()`的形式调用。

如上,DESCRIPTION最基本的信息就填写好了。

3.4 最后再check一下上述的所有文件,包括函数脚本,看看有没有问题 在R包不断完善的过程中,可以随时check一下,保证之前的修改没有什么问题 devtools::check() # -- R CMD check results --------------------- newPackage 0.1.0 ---- # Duration: 19s # # 0 errors √ | 0 warnings √ | 0 notes √ step4:收尾工作--安装包 (1)将包安装到本地的电脑 点击Build → Install and restart,可将进行安装R,重启R,加载该包三个步骤。 (2)将包制成压缩包(*.tar.gz),方便传输或者分享 点击Build → Build Source Package install.packages("path/to/newPackage_0.1.0.tar.gz", repos=NULL, type="source") Part2:R包进阶操作

上面介绍了编写R包的最简单的流程,还有很多进阶知识点值得学习。下面总结其中三个方面的整理。

2.1 添加示例数据集 (1)存储为rdata格式并使其对用户可用 使用usethis::use_data()函数,将数据对象(字符串、表格)储存到data文件夹里的rdata文件。 x % usethis::use_pipe() #在R中使用管道符


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3