函数
(1)形式参数与实际参数
(2)写函数的函数
- 圆括号里是形式参数,及设定的默认值
- 大括号里是jimmy函数的具体公式
- 举例
(3)默认参数
复习
- 绘图函数plot()
-
- 数值型向量,以x的小标为横坐标,以x的数据为纵轴
- 分别画iris里1,2,3,4列的数据
- 以第5列提供的种类画出不同颜色
- 写一个函数简化重复修改列数画4张图
- 当一个代码需要复制粘贴三次,就应该写成函数或使用循环
R包
1.R包是什么
- R程序包是多个函数的集合,具有详细的说明和示例
- 也有的R包只有数据,没有函数
- 包含R函数、数据、帮助文件、描述文件等。
2.为什么要安装R包?
-
- 特定的分析功能,需要用相应的程序包实现。
- 例如:作图包ggplot2,差异分析包limma等等。
- 目的不是学会某个具体的R包,而是找所有R包使用的规律
3.R包来源(3种)
#(1)CRAN网站(https://cran.r-project.org/web/views/) install.packages() install.packages("string") #(2)Bioconductor(https://bioconductor.org/) #旧代码 BiocInstaller::biocLite() BiocManager::install() BiocManager::install("ggplot2") #(3)github,()内写作者用户名+包名 devtools::install_github() devtools::install_github("jmzeng1314/AnnoProbe") #网络问题经常导致github访问不了,可选择本地安装 devtools::install_local("AnnoProbe-master.zip,upgrade=F)
CRAN、Bioconductor的R包本地安装方式 (一般除了很大的包,否则这两个网站不需本地安装)
不知道从哪里来的:搜一搜
安装后需要加载(加不加引号都可以)
library() library(stringr) require() require(stringr)
4.(国内)R包安装前需设置镜像
R和Bioconductor主网站位于国外,选择国内的镜像可加快访问速度
镜像网站相当于主网站的副本,访问主网站存在障碍时,访问镜像网站也可以
国内镜像推荐
清华镜像(tuna,Beijing) The Comprehensive R Archive Network
Index of /bioconductor/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
中科大镜像(utst,Hefei)The Comprehensive R Archive Network
方法一:tools-global option-packages
方法二:代码设置
options("repos"=c(CRAN="http://mirrors.tuna.tsinghua.edu.cn/CRAN/")) options(BioC_mirror="http://mirrors.ustc.edu.cn/bioc/")
5.R包安装和使用逻辑
(1)安装包→加载包→使用包里的函数
(2)已安装、不加载,快速使用
BiocManager::install() dplyr::filter()
6.常见问题
(1)大片提示信息
(2)package not available
R语言版本99%的情况下没有问题,但它总是无辜被怀疑
(3)是否更新
-
- n不行就a,千万不要s
- 不回答就一直问。。。。
- 学R语言要高冷,能no就no,no不行再yes;
- 学linux要听话,让你yes你就yes
(4)加载A包,报错B包不存在
问是否更新的,“不存在”的是依赖包
依赖包的版本不够新
更新一个包:
- 重新安装,
- 或先删除再重新安装(session需重启)
更新所有的包: update.packages()
(5)报错中有connection或url、404、http
options(download.file.method='libcurl') options(url.method='libcurl')
- 校园网限制:换个网,手机热点
- 镜像:没设置?镜像崩了?
- 大胆假设,小心求证,试错几乎没有成本
满分操作:判断式安装
if(!require(string))install.packages("strings") #如果stringr这个包已经存在,就不安装;没安装就安装一下
- 问题:成功的
如果实在不行就把英文的报错复制在必应或google上搜索解决办法
7.R包的使用场景
- 某流程代码中用到某些包
- 学绘图,用到ggplot2
- 别人的代码套子集的数据,报错不会改
- 大多数包里的函数规律一致,不需要单独学习,用到哪个函数学哪个函数
- 少部分包里的函数自有语法,例如ggplot2,dplpr等
8.R包如何使用--获取R包帮助
(1)快速查看函数帮助文档
- ?sd
- help('sd')
(2)找R包介绍页面(直接搜)
(3)Vignettes:browseVignettes("stringr")
(4)少数R包有cheatsheets
补充:列出一个包里都有那些函数或数据
ls("package:stringr")
R语言里的符号
; #把多句代码写在同一行(R语言是逐行跑代码的)