最近在写毕业论文,我想把自己的R代码整理一下然后上传,用来“假装”自己确实做了一些东西,因此将R包的制作过程记录一下,分享给大家~也为自己以后参考留下一些资料~

之前在黄志洪老师的课上他曾布置过R包的额外作业,当时我和另外两个同学一起做了一个比较简单的贪吃蛇游戏R包,叫做Sokoban。但是当时R包打包工作时另一个同学工作的,因此这也是我第一次尝试打包工作!

注意一下我是在Windows下进行操作的,不同的平台可能会有不同。废话不多说,现在开始!


前期准备:

  • 预备打入包中的函数;
  • 版本为2.14.0以上的R;
  • 合适版本的工具软件Rtools,下载链接,根据提示选择版本就可以;
  • Latex编辑工具,在Rtools的下载页面中有Mitex的下载页面,我因为之前已经装了就跳过这一步;
  • 设置环境变量
E:aaastudylatexmiktexmimiktexbinx64;E:aaastudyRRtoolsbin;E:aaastudyRR-3.5.0binx64

打包R包:

  • 清空内存中所有对象,创建Rpackage文件夹,将Rscript放到文件夹下,并设置对应的工作目录,并读入需要打包的所有函数:
rm(list=ls())
setwd("E:/aaastudy/Rpackage")
source("****.R")

  • 生成R程序包的框架,***为包名,将现在内存中的所有函数进行打包,创建出一个R包的框架:
package.skeleton(name="***",list = ls())

  • 上述文件夹包含DESCRIPTION, NAMESPACE, Read-and-delete-me(需要删除)三个文件及man文件夹,需要编辑的有DESCRIPTION文档和man中MyFunction.rd(自己创建的函数)说明文档以及***.Rd(R包)说明文档。
  • 描述全都改完后,将cmd切换到编写R包的目录并进行打包并进行检查,***_1.0.tar.gz是打包后得到的压缩包,也就是最后要向R Cran提交的文件。
rcmd build ***
rcmd check ***._1.0.tar.gz --as-cran

  • 在检查的过程中可能会遇见一些报错,我把我遇到的情况记录如下:

    • *Font ts1-zi4r at 540 not found Font ts1-zi4r at 540 not found
    • *checking should be performed on sources prepared by 'R CMD build':rcmd后的对象应该是生成的压缩包
    • * checking for unstated dependencies in examples ... NOTE
      >> Warning: parse error in file ‘***-Ex.R’:这种时候一般是有字符或者代码的错误,你找到Rcheck文件夹里面的***-Ex.R文件,找到对应的行就可以查错了。
    • R包的Title格式会有要求,check的时候按照要求改就好啦。

上传R包

  • 首先在检查的过程中不能有任何ERROR!NOTE和WRANING要尽可能少。
  • 最好将包现在本地进行测试。
rcmd INSTALL ***._1.0.tar.gz

  • 将没有任何错误的包***.tar.gz上传到 The Comprehensive R Archive Network 根据提示填写信息即可,之后会自动发送一封确认邮件,确认就好了。
  • 然后就是等啦,可以在R project中进行查看。

结语:

我编写的这个包并没有其他代码,如果用到了其它代码,可以参考在CRAN上发布自己的R包,另外,这种方法构建的R包是不能含中文字符的,但我在看官方的书Writing R Extensions 的时候看到了非英文字符的包的创建,有兴趣的可以自己看看。

参考文章:

炼数成金:如何制作自己的R包?

在CRAN上发布自己的R包

AI 技术讲座精选:如何创建 R 包并将其发布在 CRAN / GitHub 上?

Writing R Extensions

生成发布包_制作R包指南相关推荐

  1. vue 生成发布包_年轻人如何从0到1封装发布一个vue组件__Vue.js

    封装发布组件是前端开发中非常重要的能力,通过对常用组件的封装可以提升团队开发的效率,避免重复劳作且不方便维护.好的组件的抽象和封装能让组件得到更广泛和多环境兼容的应用. 本文讲述了如何一步步从0到1封 ...

  2. python 发布包_如何将自己的Python包发布到PyPI

    以前写过一篇类似的文章: 如何打包自己的项目并且发布到pypi上,不过由于PyPI进行了一些更新,因此旧方法不大适用了.趁端午有时间,想把haipproxy的客户端发布到PyPI,以改进用户体验,因此 ...

  3. 包r语言_R语言代码共享:制作R包

    作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(R),致力于利用数据科学迅速积累行业经验优势和科学知识发现,涉猎内容包括但不限于信息计量.机器学习.数据可视化.应用统计建模.知识图谱等,著有& ...

  4. r语言查找是否存在空值_关于R包安装你知道多少?

    在R语言的学习过程中离不了各种R包的安装与使用,要使用某个R包首先得学会如何安装该R包.对于R包的安装你知道的有多少?你知道如何指定安装路径吗?为何你每次重新打开R绘画都需要重新安装R包?今天小编带你 ...

  5. vue 生成发布包_Vue 3.0 终于正正正正正式发布了!

    Vue 团队于 2020 年 9 月 18 日晚 11 点半发布了 Vue 3.0 版本,我们连夜对 Release 进行了翻译.由于时间仓促,文中如有翻译不当的地方还望提出.如有侵权,请联系删帖.以 ...

  6. 进阶必看 | R包制作指南-windows系统

    R包制作指南 准备工作 开始创建R包 在Rstudio内完成R包构建    先前与大家分享过如何安装和使用R包,也与大家分享过自定义函数,这些都是R包的基础.一般来说,会将写好的函数进行封装,打包起来 ...

  7. 如何制作自己的R包?

    摘自 方匡南 等编著<R数据分析-方法与案例详解>.电子工业出版社 R包简介 R包提供了一个加载所需代码.数据和文件的集合.R软件自身就包含大约30种不同功能的包,这些基本包提供了R软件的 ...

  8. R语言 image.binarization: 包_想提高文章的引用率?写个R包吧!- 工具准备篇

    前言 R语言程序包是R语言的灵魂,是R语言的核心,每一个R语言用户都会使用到R包.2006年3月15日,第一个R包(coxrobust)加入CRAN,截止2020年5月17日,已经有超过15000个R ...

  9. RStudio制作包含Rcpp代码的R包

    前面博客中有提及,当我们进行模拟想要再次进行提速时,通常都会使用Rcpp将我们的R代码改成C++代码.具体Rcpp的使用可参考博客:让你的R代码更快--Rcpp入门,利用RcppEigen进行矩阵运算 ...

  10. Shiny平台构建与R包开发

    Introduction 在数据库网页搭建教程中已经提到,数据分析决策平台的搭建十分重要.数据库网页是数据分析决策平台的重要表现形式之一,能够很好地将大量数据或其分析结果公开展示,并能提供数据下载.统 ...

最新文章

  1. android切图尺寸_安卓设计尺寸规范
  2. [MySQL Reference Manual] 7 备份和恢复
  3. 控制台:Unable to import maven project: See logs for details日志:Unable to create injector, see the follow
  4. Js跨域解决方法总结
  5. 家庭洗车APP --- Androidclient开展 之 网络框架包介绍(一)
  6. oracle ntile函数,Oracle分析函数ntile
  7. excel html 颜色,excel怎么设置鼠标横竖颜色
  8. Oracle 12C Sharding部署和测试
  9. 可以查看计算机主要自启动项的技术,电脑中怎么查看启动项
  10. 诗词创作[3] 问春
  11. MacOS上ESP8266开发板刷microPython教程
  12. golang实现单点登录
  13. 制作html版圣诞礼物,10个圣诞礼物制作灵感 创意圣诞卡片手工制作
  14. 浅论各种调试接口(SWD、JTAG、Jlink、Ulink、STlink)的区别
  15. 通过伴随矩阵怎么求逆矩阵
  16. Codeforces Round #710 (Div. 3) ABCDE 题解
  17. 测试开发之Python核心笔记(15):迭代器与生成器
  18. React学习笔记二:实现一个数字时钟
  19. 频谱聚类|拉普拉斯矩阵
  20. 科卡在线linux,典型建网方案之家庭内部网设计

热门文章

  1. 响应式十日谈第一日:使用 rem 设置文字大小
  2. TurboMail邮件系统促进马可波罗瓷砖集团迅猛发展
  3. [30期] 第一个项目总结-—数码黑店在这一年开张
  4. 书籍-从Paxos到Zookeeper分布式一致性原理与实践
  5. 自动化测试报告 html模板,自动化测试报告模板.docx
  6. linux禁用scp命令,Linux系统如何关闭scp和sftp命令
  7. @value 默认值_【Spring】只想用一篇文章记录@Value的使用,不想再找其它了(附思维导图)
  8. 北大计算机QS排名,2019最新QS世界大学排名:清华北大获历史最高名次
  9. PHP根据配置的规则,计算用户的等级
  10. 2021-03-23梦笔记