生信技能树
函数和R包
R包介绍(R packages)
- R包是什么?
是多个函数打包存放,包含函数、数据、帮助文档、描述文件等。
- 为什么装R包?
相应包可以实现特定分析功能!
- 学一个R包要多久?伪命题
【小洁老师语录】目的不是学会某个具体的R包,而是找所有R包使用的规律
- R包在哪里?
官方网站CRAN网站-安装方式install.packages("包名")
生物R包网站Bioconductor-安装方式BiocManager::install("包名")
Github-安装方式devtools::install_github("作者用户名/包名")
- 不知道R包在哪里怎么办?
试安装命令
搜索引擎查R包关键词查找存放位置,然后用特定命令安装。
加载R包-library("R包")命令没有报错代表安装成功
library()和require()命令都可以加载R包。librar()和require()里加不加引号?不需要加引号
每次打开新的session,都需要重新加载R包
小洁老师语录密集轰炸来袭
【小洁老师语录】系统学习可以让你少问千万个问题 【小洁老师语录】能不能、行不行、二选一、两者区别等问题的统一解决办法:试一试、搜一搜、问问ChatGPT
- kimichat(月之暗面):可以给它一篇文献,他可以读文献
- 虫部落快搜(网站集成)
- 猫狸盘搜/云盘搜索(涵盖很多网盘):搜索资源
- bioinfoark:生物领域大模型
【小洁老师语录】高手是解决问题练出来的
- 怎么实现快速下载?
使用国内镜像-推荐清华或中科大镜像-设置镜像即可-网址在day4的R脚本
- tools - global option -packages -primary CRAN repository中设置镜像,选择中科大或清华
- 代码设置-day4的R脚本中
清华镜像
CRAN清华镜像
bioconductor清华镜像
中科大镜像
CRAN中科大镜像
bioconductor中科大镜像
R包安装和使用逻辑
- 安装-加载-使用包里的函数
- 已经安装的包可以用::快速调用包里的函数 比如:
pheatmap::pheatmap(volcano)
和library(pheatmap) pheatmap(volcano)
效果类似
如果后续长时间使用某个包,使用library()
加载R包,如果只用一次,可以使用pheatmap::pheatmap(volcano)
。
if(!require(stringr))install.packages("stringr")#使用该代码,如果没有该包则安装。
as.logical(require(limma))#返回逻辑值
if(TRUE),后边代码被执行;if(FALSE),后边代码被跳过。
【小洁老师语录】R包安装成功的唯一标准:library()没有error,除了error其他都是浮云
- 安装包练习:
if(!require(data.table))install.packages("data.table")
if(!require(rio))install.packages("rio")
if(!require(tibble))install.packages("tibble")
if(!require(ggplot2))install.packages("ggplot2")
if(!require(ggpubr))install.packages("ggpubr")
if(!require(eoffice))install.packages("eoffice")
if(!require(patchwork))install.packages("patchwork")
if(!require(tidyr))install.packages("tidyr")
if(!require(dplyr))install.packages("dplyr")
if(!require(stringr))install.packages("stringr")
if(!require(qlcMatrix))devtools::install_github("cysouw/qlcMatrix")
- 安装过时包方法:
ad = "https://cran.r-project.org/src/contrib/Archive/qlcMatrix/qlcMatrix_0.9.7.tar.gz"
if(!require(qlcMatrix))install.packages(ad,repos = NULL)
疑问
package not available
- 包名写错
- 命令行错误
- 可能R语言版本不适配(极少)
- 包过时被剔除
【小洁老师语录】R语言版本99%情况下没有问题,但它总被无辜怀疑
是否更新包
能不更新就不更新,除非一直报错 安装命令加updata = F,ask = F两个参数就不会有询问命令行。
【小洁老师语录】学R语言要高冷,能no就no,no不行再yes;学Linux要听话,让你yes就yes
加载a包,报错b包不存在(a和b依赖包关系)
先装b包,再装a包
小规律:安装和加载过程中报错信息,注意看引号,引号里大多是依赖包的名字。
更新包:取消加载 > 卸载 > 重启session > 安装
关键词connection,internet,url,404,http,download等:网络限制-网络、镜像等
win电脑not waitable/permission denied:管理员方式打开Rstudio,重新运行。
win电脑中文用户名:修改环境变量
【小洁老师语录】大胆假设,小心求证,试错几乎没有成本 【小洁老师语录】一定要有验证、检查意识和能力
R包如何使用-查看帮助文档
代码语言:r复制test <- read.csv("exercise2.csv")
#我的答案(错误)
test[test$Species == c('a','c'),]#发生循环补齐,一对一比较,导致缺失
#正确答案
test[test$Species == 'a'|test$Species =='c',]#方法1
test[test$Species %in% c('a','c'),]#方法2
test[test$Species != 'b',]#方法3
## Petal.Length Petal.Width Species
## 1 4.6 1.5 a
## 3 4.5 1.5 a
## 5 4.0 1.3 a
## 6 4.7 1.4 a
## 7 1.3 0.2 c
## 8 1.4 0.2 c
## 11 4.9 1.5 a
## 12 1.4 0.2 c
## 13 1.5 0.2 c
## 15 1.4 0.2 c
R包使用场景
- 某些流程使用某些包
- 学绘图,用到ggplot2
- 别人代买自己数据套,报错不会改
- 大多数包规律一致,不需要单独学习,用哪个函数学习哪个函数
- 少部分包有自学语法,比如ggplot2,dplyr等
R包如何使用
- 查看帮助文档
- 搜索引擎搜R包介绍页面
ls("package:包名")
该命令可以列出R包里的函数或数据
R语言里的符号
()前是函数
[]前是向量数据框或矩阵取子集
[[]]列表取子集
$数据框取子集,列表取子集
<-赋值
= 赋值,或连接形式参数和实际参数
==判断是否相等
!否定
{}多行代码
举例认清函数和数据
ggstatsplot是一个功能强大的作图R包,这里使用ggbetweenstats和ggbarstat函数举例做图。通过安装ggstatsplot包然后使用帮助文档学习怎么使用R包。
代码语言:r复制if(!require(ggstatsplot))install.packages("ggstatsplot")
library(ggstatsplot)#尝试装ggstatsplot的包,学习使用它
colnames(iris)
ggbetweenstats(iris,x = "Species",y = "Sepal.Length")
y
代码语言:r复制?ggbarstats#查看帮助文档
##ggbarstats的示例数据
# for reproducibility
set.seed(123)
# creating a plot
p <- ggbarstats(mtcars, x = vs, y = cyl)
# looking at the plot
p
# extracting details from statistical tests
extract_stats(p)
解决问题的思维
另外
代码语言:r复制source("04_other.R")#不打开脚本,全选运行!代码用的比较多的时候可单独放脚本,快速搬运运行!
生信技能树公众号
生信入门马拉松课程
小洁老师授课