函数与R包
函数
-
形式参数与实际参数
seq(from=3,to=21,by=3)
函数:
()
前面的部分,例如seq()
形式参数:from, to, by,作者设计,可省略
实际参数: 3,21,3,使用者根据实际情况做改动
-
写函数的函数
function()
函数名称:jimmy,a/b/m:形式参数,2:m这一参数的默认值;
函数功能:(a+b)^m
jimmy <- function(a,b,m=2){ (a+b)^m }
使用:逻辑是(1+2)^2
jimmy(a=1,b=2) ## [1] 9
-
写函数应用:
例:画很多很多图
plot(iris[,1],col = iris[,5]) plot(iris[,2],col = iris[,5]) plot(iris[,3],col = iris[,5]) plot(iris[,4],col = iris[,5]) ##简化成 jinx <- function(i){ plot(iris[,i],col=iris[,5]) } jinx(1) jinx(2) jinx(3) jinx(4)
- 一行代码重复3次以上,就可以包装成函数/使用循环。
R包
多个函数的打包存放,包含函数、数据、帮助文件、描述文件等
是一种按需使用的工具
R包来源
-
CRAN:
install.packages(‘pkg’)
-
Bioconductor:
BiocManager::install(‘pkg’)
-
Github:
devtools::install_github("user/pkg")
- 可选参数(update = F, ask = F)
加载R包
检验R包成功安装的方法
library(pkg)
require(pkg)
设置镜像
保证R包下载速度
-
tools→global option→packages→change(只能设置CRAN)
-
代码设置:
options("repos"=c(CRAN="http://mirrors.tuna.tsinghua.edu.cn/CRAN/")) options(BioC_mirror="http://mirrors.ustc.edu.cn/bioc/")
常见问题:
- package not available:包名写错,安装命令错误,R语言版本与包要求不符(少见),包过时被剔除。
- 加载A包,报错B包不存在:缺啥补啥,安装缺的B包后再装A包。
- 依赖包的版本不够新:更新依赖包。
- 网络问题。
- not writable/permission denied:权限问题,使用管理员方式重新打开Rstudio。
本地安装R包(实在不行就试试这个!
从官方网站上下载R包到本地
install.packages(“libs/xxxx.tgz”,repo=NULL,type=”source”)
devtolls::install_local('xxx.tgz')
查看R包
sessionInfo() ##包括所有版本信息
.libPath() ##所有R包的安装路径
packageVersion("pkg_name") ##查看R包版本
安装特定版本R包
library(devtools)
install_version("edgeR", version = "3.14.0",repos = "http://cran.us.r-project.org") ##可以不写repos
卸载R包
remove.packages("pkg")
根据情况判断
if(!require('pkg'))install.packages('pkg') ##使用require('pkg')判断,有则不装
R包使用
-
查看帮助文档
?
+函数,如?Sd
-
网上搜R包名字或函数名字
-
在线教程:
browseVignettes('limma')
,只有部分R包有 -
阅读报道该包的文献
- R语言中能拒绝则拒绝,有问题选
no
- Linux中听话,有问题选
yes
引用自生信技能树课程!比心小洁老师!