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()查看数据结构

posted @ 2021-01-10 13:42  stdforml  阅读(587)  评论(0编辑  收藏  举报