R包的依赖和介绍写在哪里-DESCRIPTION
今天是生信星球陪你的第557天
大神一句话,菜鸟跑半年。我不是大神,但我可以缩短你走弯路的半年~
就像歌儿唱的那样,如果你不知道该往哪儿走,就留在这学点生信好不好~
这里有豆豆和花花的学习历程,从新手到进阶,生信路上有你有我!
花花写于2020-3-3 受疫情影响,公司的线下培训无法正常推进,我们也与时俱进推出了强度更大、时间更长、内容更丰富的线上培训。所以过去的半个月时间里,我在疯狂准备线上课程的资料,原本10个小时的线下课程一下子暴涨到30小时(仅是R语言和GEO部分,课程总时长60小时啊),备课难度可想而知。在我朋友圈里可以看到我的头发。。。。所以完全没顾上学习新知识,又到了不学无术、缺少输出素材的时间。。。线上培训的第一期进度已经过半,我的部分讲完了,终于得以休息,一周后再战咯。今天突然想起前面撂挑子的R包安装,就赶紧捡起来了。不写我会羞愧啊,写又没得写,所以就只得学习新东西,这就是输出倒逼输入的鲜活例子。
今天对我和豆豆来说是个很特别的日子,我们三年前的今天买了一个”恋爱保险“,意思大概就是从投保之日起,两个人在时间间隔3-10年内结婚,就可以获得奖金啦,保费500,奖金10000,非常开心。
回顾一下
包的主要组成部分:
(1) R/ 目录,函数代码,是主体部分。
(2) 描述文件 DESCRIPTION,记录依赖包、meta信息等。
(3) 命名空间文件 NAMESPACE,第 8 章会讲。
(4)man 文件夹,经探索发现是写函数帮助文档的地方。
还包括一个 RStudio 项目文件 pkgname.Rproj
前面有三篇同系列文章,去年10月写的,成果是整出了一个最小可用可移植的包:
我要学R包开发了,一起吗
我写了一个最简单的R包,你学吗
R包的精华都在这个目录下
本文是《R包开发》这本书的第四章学习记录,学习了DESCRIPTION中重要的域。
DESCRIPTION(描述文件)的作用是存储包中重要的meta数据,比如这样:
Package: mypackage
Title: What The Package Does (one line, title case required) Version: 0.1
Authors@R: person("First", "Last", email = "first.last@example.com",
role = c("aut", "cre")) Description: What the package does (one paragraph)
Depends: R (>= 3.1.0)
License: What license is it under? LazyData: true
1.依赖
在这里列出你的R包所依赖的包。Imports表示必需的依赖,会在你的R包安装时一起安装,Suggests则是可选的依赖,不会在你的R包安装时被一起安装。
虽然在函数代码里写上依赖包的安装代码也是一种做法,但哈德雷大神推荐的是写在这里。
“`
Imports:
dplyr,
ggvis
```
Suggests:
dplyr,
ggvis,
Imports 和 Suggests 是用逗号分隔的包名列表。每行放一个包名,并按字母顺序排列,易于快速阅读。
主要是依赖包有哪些、要求的版本(通常是指定最低版本,而不是精确版本);Depends(R版本)、LinkingTo(链接列,第10章)以及Enhances(增强)
2.标题和描述
Title(标题)、Description(描述),描述包是做什么用的,区别只在于长短咯。
3.作者
例子:
Authors@R: person("Hadley", "Wickham", email = "hadley@rstudio.com",
role = c("aut", "cre"))
三个字母的代码用来指定角色(role),有四个重要的角色。
♦ cre,创建者或者维护者,也就是你遇到问题时需要联系的人。
♦ aut,作者,对包作出重大贡献的人。
♦ ctb,贡献者,作出了较小贡献的人,比如提供了一些补丁。
♦ cph,版权所有人。在下面这种情况下使用:版权是作者以外的人,通常是一个公司(即作者的雇主)。
也可以列出多个作者。
可以用 c() 列出多位作者,格式为:
Authors@R: c(
person("Hadley", "Wickham", email = "hadley@rstudio.com", role = "cre"),
person("Winston", "Chang", email = "winston@rstudio.com", role = "aut"))
4. LICENSE
如果包不打算发布,或者决定开源,是无需许可证的。R包考虑三种许可:
MIT 自由分发,但是许可证必须始终和代码一起分发
**GPL-2或GPL-3 任何包含你的代码的包都必须 使用 GPL 兼容的许可证来发布。任何人发布你代码的修改版本(衍生作品)时, 必须公布源码。
*CC0* 放弃对代码和数据的所有权利
5.R包的版本
发布的版本号包括三个数字,< 主版本号 >.< 次版本号 >.< 补丁版本 >,开发中的包有第四个数字:开发版本,开发版本应该从9000开始。
插个小广告!
再给生信技能树打个call!
请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!