R语言3函数与R包
生信技能树R语言部分学习笔记
学习用Rmarkdown来写代码,Rmarkdown可以将注释、代码、运行结构一起展示的一种工具。
1. 函数与参数
(1)形式参数与实际参数
函数括号里面等号前面的是形式参数,等号后面的是实际参数。形式参数是函数作者设计的,可以不写;实际参数是使用者可以更改的。
(2)写函数的函数
function(参数){函数主体}
Tips: 当一个代码需要复制粘贴三次,就应该写成函数或使用循环。
(3)默认参数
通常作者会设计很多参数,但是只有前几个是必须填的,其他的参数都有默认值。
2. R包(R package)介绍
程序包是什么?
R程序包是多个函数的集合,具有详细的说明和示例。
也有的R包只有数据,没有函数
包含R函数、数据、帮助文件、描述文件等。
为什么要安装程序包?
特定的分析功能,需要用相应的程序包实现。
例如:作图包ggplot2,差异分析包limma等等。
3. R包来源
(1) CRAN网站
安装方法:install.packages()
(2) Bioconductor(生信方面的包)
安装方法:BiocManager::install()
(3) github
安装方法:devtools::install_github()
#括号里写作者用户名加包名
devtools::install_github("jmzeng1314/AnnoProbe")
#网络问题经常导致github访问不了,可选择本地安装
devtools::install_local("AnnoProbe-master.zip",upgrade
= F)
问题:CRAN、Bionconductor的R包本地安装方式?
4. 用于R包安装的函数
判断从哪里来/怎么安
CRAN: install.packages()
Bionconductor: BiocManager::install()
Github:devtools::install_github()
安装后加载
library()
,require()
安装的时候包的名字需要加引号,加载的时候不需要引号。
5.(国内)R包安装前需要设置镜像
5.1 常用镜像
国内镜像:清华镜像,中科大镜像
要分别设置CRAN和Bioconductor的镜像,在RStudio中修改的是CRAN的镜像。
清华镜像(tuna,Beijing)
CRAN: https://mirrors.tuna.tsinghua.edu.cn/CRAN/
Bioconductor: https://mirrors.tuna.tsinghua.edu.cn/bioconductor
中科大镜像(ustc, Hefei)
CRAN: https://mirrors.ustc.edu.cn/CRAN/
5.2 如何设置镜像
方法1:tools--global option-packages
方法2:代码设置
options("repos"=c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
options(BioC_mirror="https://mirrors.tuna.tsinghua.edu.cn/bioconductor")
6. R包安装和使用的逻辑
(1)安装包---> 加载包 ---> 使用包里的函数
library()
是检查是否安装成功的标准
(2)已安装、不加载,直接使用
BiocManager::install()
dplyr::filter()
包名::
函数名,表示显示的指定用某个包里的某个函数,通常用于实战中仅用一次的函数,也适用于两个包中的函数名有冲突的情况。
7.常见疑问
(1)大片提示信息
检查是否有error,没有就忽略
(2)package not available
可能的原因:
原因1:包名写错
原因2:安装命令使用错误
原因3:本机的R语言版本与包所要求的版本不符(极少)
(3)是否更新?
懒惰策略,能不更新就不更新,除非一直报错。如果不想回答:安装命令加上参数:update=F,ask=F
(4)加载A包,报错B包不存在
问是否更新的、“不存在”的是依赖包
先安装要求的包(B包),然后再安装A包
(5)报错中有connection或url、404、http
切换镜像,检查网络连接。如果都没有问题,运行
options(download.file.method = 'libcurl')
options(url.method='libcurl')
再重新下载。
当安装一个包时,如果直接使用install.packages()
,则不管是否已经安装这个包,都会重新安装该包,较好的安装方式是判断式安装:
if(!require(stringr)) install.packages("stringr")
如果已经安装,则require(stringr)
返回TRUE,于是!require(stringr)
为FALSE,不执行后面的安装,同时加载已经安装的stringr
包。
如果没有安装,则require(stringr)
返回FALSE,于是!require(stringr)
为TRUE,执行后面的安装操作。
8. R包如何使用——获取帮助
(1)快速查看函数帮助文档
?max
或者help("max")
看描述/参数/实例
example(seq)
(2)找R包介绍页面(必应直接搜/CRAN/Bioconductor)
(3)少数R包有cheatsheets
eg:dplyr
, tidyr
browseVignettes("clusterProfiler")
查看网页版说明书
is("package:clusterProfiler")
列出某个包里所有的函数
str()
查看数据类型,class()
查看数据结构