生信入门马拉松之R语言基础-函数和R包(day 4)

2024-04-14 16:51:42 浏览数 (2)

生信技能树

函数和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脚本

  1. tools - global option -packages -primary CRAN repository中设置镜像,选择中科大或清华
  2. 代码设置-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其他都是浮云


  • 安装包练习:
代码语言:r复制
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")
  • 安装过时包方法:
代码语言:r复制
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
ggstatsplot包里的ggbetweenstats函数作图ggstatsplot包里的ggbetweenstats函数作图
代码语言: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)
使用ggstatplot函数中的ggbarstats函数作图,数据源于示例文档使用ggstatplot函数中的ggbarstats函数作图,数据源于示例文档

解决问题的思维


另外

代码语言:r复制
source("04_other.R")#不打开脚本,全选运行!代码用的比较多的时候可单独放脚本,快速搬运运行!

生信技能树公众号

生信入门马拉松课程

小洁老师授课

0 人点赞