如何创建一个R包

作者: 不会生信哟 | 来源:发表于2021-03-21 19:57 被阅读0次

--杀杀
喜欢用R写代码的同学应该天天在用各种R包,大家多少好奇过R包是怎么创建的,怎样能把一些自己设计的功能封装到R包里,方便以后使用~

这篇简书想分享一下如何创建一个最基础的R包,这只需要很短的时间就可以完成,但是更加高阶的功能或者功能复杂的R包就需要以后进一步研究啦!

首先你需要确定你的R包要实现什么功能,并先把这个功能写成一个函数。我今天举例的这个R包是根据我的一个小需求:我需要把一个比较大的矩阵按列拆分开来,并且给每一列都加上原矩阵的行名,然后批量写出成文件,文件名对应原矩阵的列名。原矩阵有几列,最后就会被拆分成几份文件。功能很简单,主要是借此学习如何创建R包。

首先我把我的需求写成函数:

writefiles <- function(matrix_w,type)
{
  file_list <- colnames(matrix_w)
  files <- paste(file_list,".",type,sep="")
  for (i in 1:(dim(matrix_w)[2]))
  {
    temp <- cbind(as.matrix(rownames(matrix_w)),as.matrix(matrix_w[,i]))
    if(type == "txt")
    {write.table(temp,file=files[i],col.names = F,row.names = F,quote = F,sep = "\t")}
    if(type == "csv")
    {write.table(temp,file=files[i],col.names = F,row.names = F,quote = F,sep = ",")}
  }
}

至少要确定你的函数是没有语法错误的

接下来就开始准备R包
首先需要安装Rtools
https://cran.r-project.org/bin/windows/Rtools/

打开RStudio,file - new project - new directory - R package

给你的包取名字,然后创建好存放你的R包的文件夹,并填写

可以勾选use renv with this project,会创建更多可能用的文件,比如说上传github需要的文件,点击create project

R会在你规定的路径下创建这些文件,但我们只需要使用其中的一部分

接下来加载俩包

library(devtools)
library(roxygen2)

附上装包代码嘻嘻

if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install("devtools") 
接下来,我们需要编辑一些文件,首先是descripetion文件,我们可以直接从RStudio右下角的files里双击打开 接下来进行编辑 需要修改的就是package名字,title,author,description,其他我都没有修改,改完点保存就kk
接下来,就需要创建你的R包里最重要的函数了

同样在RStudio的右下角里双击进入R文件夹,里面已经有一个hello.R文件,不用管它,我们可以file - new file - R script来新建一个.R文件,然后把你的函数代码粘贴进去,保存,关闭

还没结束,我们需要对我们的代码写一些注释信息,在RStudio中使用Ctrl+Shift+Alt+R的快捷键(光标放在你刚刚创建的.R文件上),会自动帮你在原文件中生成一些注释信息

可以看到,第一行修改为你的函数名字,第二行是描述,@param后面是你的function中涉及到的参数,你需要对这些参数做一些描述或解释,接下来就是一个example,这个example必须是可以使用你的内置函数运行成功的。因为后面在check的时候,系统是会运行你的example的,如果不成会报错。

接下来运行代码,记住每次更新了你的.R文件后,都要运行这个代码更新.Rd文件

devtools::document()

让R在man文件夹中自动生成对应的.Rd文件
接下来执行检查

check()
检查需要几分钟时间,然后会显示检查结果 warning和notes都问题不大,主要看有没有errors,一般问题都出在函数的bug上,跟着系统的提示修改bug就可以了。我在创建包时报了一个错,说我包中涉及到的write.table函数是需要依赖的,我根据系统的提示,在NAMESPACE文件夹中加了一句 就没有再报错了。查完bug,没有error的话,点击Build - Build source package,R会自动帮你生成这个包,并加载这个包,你就可以用自己的数据考察一下自己的包好不好用啦。同时,你的文件夹下也会生成一个tar.gz的压缩包文件,这就跟平时我们从网上下载的R包是一样的。 如果之前你写.R文件写的没问题的话,使用 ?你的函数名 就可以调出帮助文档,就像平时我们使用别的R包有疑惑时一样。

参考:
https://www.bioinfo-scrounger.com/archives/546/
https://blog.csdn.net/nixiang_888/article/details/114299150

相关文章

  • 如何创建一个R包

    https://www.bioinfo-scrounger.com/archives/546/https://ww...

  • 如何创建一个R包

    --杀杀喜欢用R写代码的同学应该天天在用各种R包,大家多少好奇过R包是怎么创建的,怎样能把一些自己设计的功能封装到...

  • R-编写R包-入门篇

    总结一下目前学习的,基于Rstudio的创建R包流程。 Part1:创建R包基本流程 step1:建立R包开发环境...

  • 关于加载本地版R包的基因教训

    加载本地R包对于大部分R语言初学是一个难题,今天我们来聊一聊如何正确的安装离线R包。 GEOmirror R包是从...

  • R语言:创建web界面

    1、shiny包 R语言使用shiny包创建web界面。使用shinydashboard包和shinytheme,...

  • 【r<-ggplot2】ggplot2精要:线图

    这个R教程讲解如何使用R和ggplot2包创建线图。 在一个线图中,观察值都按照x排列并连接起来。 可以使用函数g...

  • 2021-2-2简历制作-R包-vitae

    此R包提供了制作和维护简历的模板和函数,简化了制作和维护的流程 安装包 从模板创建简历(从创建R morkdown...

  • 学习小组Day6笔记——R数据整理

    R包的使用 今日份学习是R包的基本操作,包括如何下载调用R包,dplyr的基本操作。mutate()select(...

  • 如何自己写一个公用的NPM包

    以markdown-clear,创建过程为例,讲解整个NPM包创建和发布流程 1 如何创建一个包 1.1 创建并使...

  • R包:如何安装R包

    介绍 R语言提供的大量R包为众多研究者提供了足够的工具,但是如何安装R包是很多人在使用R语言做数据分析时候所面临的...

网友评论

    本文标题:如何创建一个R包

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