美文网首页Rgithub学习
R语言学习-写第一个R包

R语言学习-写第一个R包

作者: Seurat_Satija | 来源:发表于2020-12-19 00:07 被阅读0次

首先,安装Rtools: http://cran.r-project.org/bin/windows/Rtools/,想必你已经知道了这并不是一个R的包;
其次,最好有一个Rstudio;
再次,愉快的安装devtools包吧:

install.packages("devtools",dependencies=T)

好了,准备工作就绪,打开一个新的脚本,即可以开始写包之旅。

检测环境

library(devtools)
has_devel()#诊断环境

利用has_devel函数检测当前的环境是否有问题,比如gcc,可能因为我也忘记了自己之前之前配置过什么,反正总之就是没问题哈哈,是的只要返回值是TRUE就没问题。

早就说了要开始现在才开始

create("E:/Jigeshenqi")#创建包的文件夹,文件夹名就是包的名字,比如我的就是及格神器,囧……
setwd("E:/Jigeshenqi")#工作空间转移,这样比较方便

值得一提的是,除了以上命令外,也可以通过Rstudio中的file-New Project-New Directory-R Package来新建R包的项目。
来看看这个项目的结构:
1.一个R的文件夹,用来存放.r脚本,比如你的常用function,放在这里即可;
2.一个基础的无后缀的DESCRIPTION文本文件,可以用任意文本编辑器打开,是对于你将创建的R包的基础介绍;
3.NAMESPACE文件,可以先不用管它;
总之,一个package的框架基本就有了,剩下的就是往里面填东西。

添加.R文件

首先往包文件目录下的R文件夹内添加自己编写的R脚本,如果此时你没有合适的脚本那么随便写个function也是可以的:比如

及格神器,将考试得到的的数开方再乘以10

newscore <- function(x){
  y <- sqrt(x)*10
  return(y)
}

然后打开.R文件,将光标置于函数名称,按住ctrl+shift+alt+r,函数就自动添加了几行信息。
这时我们需要将信息填写完整。
比如我填的:

#' Caculate the newscore
#'
#' @param x old score
#'
#' @return new score
#' @export
#'

#' @examples newscore(49)

然后保存文件。

编辑DESCRIPTION

file.edit("DESCRIPTION")

如下:

Package: Jigeshenqi
Title: What the Package Does (One Line, Title Case)
Version: 0.0.0.9000
Authors@R: 
    person(given = "lx",
           family = "Wang",
           role = c("aut", "cre"),
           email = "first.last@example.com",
           comment = c(ORCID = "YOUR-ORCID-ID"))
Description: What the package does (one paragraph).
License: What license it uses
Encoding: UTF-8
LazyData: true
RoxygenNote: 7.0.2

Authors@R的格式必须要用person函数来写,其他的因为无上传打算,随意就好。

关于以上,如果在.r文件中引用了某个包,把包名写入imports中,在后期加载时会自动加载这个包。我这没有,就没填了。
准备打包

load_all()

每一次运行load_all(),都会载入Jigeshenqi/R内最新的所有.r文件内容。

document()

接着用document()将Jigeshenqi/R内的所有.r文件生成为jigeshenqi/man文件夹内的.Rd文件。

build()#打包

打包成一个压缩文件,生成jigeshenqi_0.0.0.tar.gz,用于安装,这个文件会生成在jigeshenqi文件夹的上一级栏目。
使用

install(".")

安装,大功告成。
重启Rstudio,调用一下吧0

> library(Jigeshenqi)
> newscore(36)
[1] 60

36分经过换算成了60分。。。棒

上传到github,安装测试

> devtools::install_github("lxwang326/R_Code/Jigeshenqi")
Downloading GitHub repo lxwang326/R_Code@HEAD
√  checking for file 'C:\Users\Cuixia\AppData\Local\Temp\RtmpkTOkDS\remotes1710ce13bc\lxwang326-R_Code-d37d979\Jigeshenqi/DESCRIPTION' ...
-  preparing 'Jigeshenqi':
√  checking DESCRIPTION meta-information ... 
-  checking for LF line-endings in source and make files and shell scripts
-  checking for empty or unneeded directories
-  building 'Jigeshenqi_0.0.0.9000.tar.gz'
   
Installing package into ‘C:/Users/Cuixia/Documents/R/win-library/4.0’
(as ‘lib’ is unspecified)
* installing *source* package 'Jigeshenqi' ...
** using staged installation
** R
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
  converting help for package 'Jigeshenqi'
    finding HTML links ... 好了
    newscore                                html  
** building package indices
** testing if installed package can be loaded from temporary location
*** arch - i386
*** arch - x64
** testing if installed package can be loaded from final location
*** arch - i386
*** arch - x64
** testing if installed package keeps a record of temporary installation path
* DONE (Jigeshenqi)

加载包 测试

> library(Jigeshenqi)
> newscore(36)
[1] 60

成功!!!

后面可以将其上传到github或者修改后发布到CRAN等。

参考

https://www.cnblogs.com/big-face/p/5116954.html?utm_source=tuicool&utm_medium=referral
大鹏 零基础学习R语言

相关文章

  • 2019-02-19

    R语言学习笔记-R包安装 R语言是一个开放性的统计学语言,r包的丰富程度涵盖了几乎生产和生活的各个方面,r包与r包...

  • R语言学习-写第一个R包

    首先,安装Rtools: http://cran.r-project.org/bin/windows/Rtools...

  • Day-6 I want food

    学习安装R包 R语言中R包的安装都是一个语句#install.packages("") 学习dyplr五个函数的使...

  • Day6R包学习-谢大飞

    学习R包 包是 R 函数、实例数据、预编译代码的集合,包括 R 程序,注释文档、实例、测试数据等。R 语言相关的包...

  • 学习小组Day6笔记--风云

    R学习第三天 R包介绍R语言的使用,很大程度上是借助各种各样的R包的辅助,从某种程度上讲,R包就是针对于R的插件,...

  • R语言_函数认知&R包安装

    主要从以下三方面去学习R语言函数与R包: 1.R语言函数:形式参数实际参数默认参数了解函数的方式2.R包:什么是R...

  • 学习小组Day6笔记--贾

    R包学习和示例 学习R包 学习R语言最主要的目的是以后利用它的图表功能以及bioconductor中多种生信分析的...

  • 生信学习小组 Day6 -- ldj

    R语言学习-R包 R包的下载,在CRAN或 Bioconductor 里,自定义的下载是在CRAN, 配置 Rs...

  • Day6—刘强

    R语言之R包概述 What's R package? R包是多个函数的集合,具有详细的说明和示例学生信,R语言必学...

  • R基础笔记——R语言包的安装

    R基础笔记——R语言包的安装 R语言之所以强大,很大的原因在于强大的R语言包。用过R的人都有个体验就是,每当我们要...

网友评论

    本文标题:R语言学习-写第一个R包

    本文链接:https://www.haomeiwen.com/subject/sbsfnktx.html