Ruizheng 的学习笔记
感谢 生信技能树 小洁老师
函数与参数
-
形式参数与实际参数
- 写函数的函数
function() {}
补充知识:绘图函数 plot()
x = rnorm(10); plot(x)
plot(iris[,1], col = iris[,5])
- 默认参数
作者会设计很多参数,但只有前1-n个是必须填的,其他的的参数都有默认值。
自己写一个小函数
g <- function(x){
c(mean(x),median(x))
}
tips: 有多个输出结果时,将输出的结果组成一个向量; 当一个函数里需要返回多个值(比如有变量,有向量,有矩阵)时,我们要用list,而不是return
R包(R package)介绍
- R程序包是多个函数的集合,具有详细的说明和示例
- 也有的R包只有数据,没有函数
- 包含R函数、数据、帮助文件、描述文件等
- 特定的分析功能,需要用相应的程序来实现
R包来源
- CRAN网站 install.packages()
- Bioconductor BiocManager::install()
-
github devtools::install_github()
(国内)R包安装前需设置镜像
- tools–global option-packages
- 代码设置
options("repos"=c(CRAN="http://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
options(BioC_mirror="http://mirrors.ustc.edu.cn/bioc/")
R包安装和使用的逻辑
- 安装包
加载包
使用包里的函数 - 已安装、不加载,直接使用
通常用于实战中仅用一次的函数,也适用于两个包中的函数名有冲突的情况。
BiocManager::install()
dplyr::filter()
常见疑问
1. 大片提示信息
检查是否有error,没有就忽略
2. packages not available
- 包名写错
- 安装命令使用错误
- 本机的R语言版本与包所要求的版本不符 (极少)
3. 是否更新
懒惰策略,能不更新就不更新,除非一直报错
不想回答:安装命令加参数:update = F, ask = F
4.加载A包,报错B包不存在
下载那个不存在的包…
5.报错中有connection或url
网络问题
切换镜像,检查网络连接。如果都没有问题,运行
options(download.file.method = 'libcurl')
options(url.method='libcurl')
满分操作:判断式安装
if(!require(stringr))install.packages("stringr")
R包的使用场景
- 某流程代码中用到某些包
- 学绘图,用到ggplot2
- 别人的代码套自己的数据,报错不会改
- 大多数包里的函数规律一致,不需要单独学习,用到哪个函数学习那个函数
- 少数包的函数自有语法,例如ggplot2, dplyr等
R包如何使用-获取帮助
- 快速查看函数帮助文档
?max
help(max)
- 找R包介绍页面(CRAN或者Bioconductor)
- 少数R包有 Cheat sheet
R语言里的符号
() 函数
[] 向量、数据框取子集
[[]] 列表取子集
$ 数据框取列
= ,<- 赋值
== 判断是否相等
! 否定
{} 多行代码
井号# 注释
"" 字符串
:: 包::函数
认清函数与数据
函数
形式函数
实际函数
数据框或矩阵
列表
文件名
包
数据的读取
test = read.csv("ex3.csv")
- 常见分隔符:逗号 空格 制表符 (\t)
- 后缀名没有意义,只是人为定义的格式,约定俗成。在windows电脑上可以更好地绑定打开该文件的软件
- 本质都是纯文本
read.csv()
read.table()
直接读取如果失败,需要准备一些参数
R文件保存
write.csv()
save()
load()
Rproject组织形式
- script .R
- R文件 .RData
- 数据 .csv .txt