“ 也许那是过去的你,你无法改变,但现在的你能够变得强大。” --科白君上期与大家分享了散点图的详细讲解与绘制。事后,我遗漏了一个较为重要的环节--R程序包的安装与使用问题。编写一份完整代码时需要用到很多不同的函数,这意味着需要各种各样的程序包。目前,R语言含有1万多个程序包甚至更多。尽管常用的R包可能只有几百或上千个,但很多时候初学者在学习时常遇到安装R程序包的报错问题。之前,我在安装export包及其更新时遇到了各种坑,尝试了很多种办法才解决。这里,我总结了以下几种被广泛尝试的安装方法,希望对大家有所帮助。R语言程序包是函数、数据、代码的一个集合。R包中主要包含函数的含义及用法,还包括数据集和代码示例等。只有将R包载入R平台后,其R包里的函数才能被识别或读取。加载后,使用者可以查询到该R包的所有信息,有助于编译代码。 目前,R包主要来源于三个平台。1) CRAN存储了R最新版本的代码和文档的服务器 (https://cran./)。2) 生物信息学领域的Bioconductor平台,它提供的R包主要为基因组数据分析和注释工具 (https:///)。3) 面向开源及私有软件的第三方平台--Github。R包的作者更愿意将其存储在该平台,因此很多时候需要在上面下载 (https://github.com/)。 1)我们先查询当前R包的存储库位置,可以通过 .libPaths ( ) 函数完成。 .libPaths ( ) #点 . 需要注意容易遗漏 得到结果:电脑本身的R位置和本地位置,两条路径。 
2)获取所有已经安装的R包列表,利用 library ( ) 函数完成。 结果如图:该路径下所有R包的列表。 
1) CRAN平台 我们利用 install.packages("package name")直接从CRAN安装。 install.packages ("vegan") # 如果要下载多个包,可以用 c ( ) 来实现 install.packages (c ("package 1", "package 2", "package 3",···) ) 或手动安装,先从https://cran./web/packages下载所需的R包。把该R包保存着适当的本地位置,然后再用代码加载安装。 install.packages (file_name_with_path, repos = NULL, type = "source") # 例子 install.packages ("C:\Users\ThinkPad\Desktop\vegan_2.5-7.zip", repos = NULL, type = "source") 再或者用以下办法完成安装tar.gz/zip格式的程序包。  与CRAN安装相似,先 source ("https:///biocLite.R") 链接到Bioconductor,然后 biocLite ("package name") 进行安装。如果下载过慢,用chooseBioCmirror ( ) 更改镜像。如果 source 失效,则根据网站里的介绍选择BioManager : : install ( ) 安装。# 如果 source 无效,则看 https:///install source ("https:///biocLite.R") # 然后用 biocLite ("package name") # 以下是 https:///install 的一种方法 if (! requireNamespace ("BiocManager", quietly = TRUE) ) install.packages ("BiocManager") BiocManager : : install (version ="3.10") # 这是基于 3.6 R版本,如果是 4.0 R版本则使用 version = "3.12" chooseBioCmirror ( ) # 修改下载镜像 BiocManager : : install ("ggtreeExtra") install.packages ("BiocManager") BiocManager : : install ("ggtreeExtra") # 指定版本安装 BiocManager : : install ("ggtreeExtra", version = "4.0") 3) Github平台 需要 devtools包 或 remotes包 进行下载。先安装Rtools软件,然后安装devtools或remotes,然后用 devtools / remotes : : install_github 安装,需记住作者和程序包的名字。例如 YuLab-SMU / ggtreeExtra,通常由包的原作者自己取的,各式各样的名称都有。# 使用 install_github ( ) 前需要预装 rJava、devtools/remotes包 # 其中windows Java环境需要配置,基本思路是: # 先下载安装jdk,然后添加jdk路径到新建的系统变量 # 具体操作流程可以学习https://blog.csdn.net/weixin_45915507/article/details/105786961
# devtools 包 install.packages ("devtools") library (c ("rJava", "devtools")) install_github ("YuLab-SMU/ggtreeExtra") # 或者 if(!requireNamespace ("devtools", quietly=TRUE)){ install.packages ("devtools") } devtools : : install_github ("YuLab-SMU/ggtreeExtra")
# remotes 包 install.packages("remotes") library ("remotes") install_github ("YuLab-SMU/ggtreeExtra") # 或者 if(!requireNamespace ("remotes", quietly=TRUE)){ install.packages ("remotes") } remotes : : install_github ("YuLab-SMU/ggtreeExtra") 此外,有作者开发了 githubinstall 包,与CRAN的安装方式一致,但注意使用前先安装Rtools软件。安装时我们仅需输入包的名称,即可完成下载。install.packages ("githubinstall") library ("githubinstall") githubinstall ("ggtreeExtra") 1) 加载R包的方法:library ("package name") 和 require ("package name") 函数。此外,最近有新的方法可以一次性载入多个R包。先install.packages ("pacman"),然后 library ("pacman"),用该R包中的一个函数--p_load ( ) 函数完成。即使你所安装的R包与当前R环境不匹配(package is not avaliable for the R version) ,该函数仍能够对其安装。对于pacman包中大部分函数,不需要对括号内packages使用引号" "。# 正常加载程序包的方法 library ( ) require ( ) # 一次性加载多个程序包的方法 if (!require("pacman")) install.packages ("pacman") # 下载 pacman 包 library ("pacman")# library 加载 pacman 包 p_load (ggplot2, ggthemes, dplyr, readr, showtext, export) # p_load 需要 pacman 包才能运行 2) 查看R包的方法:①查看默认加载的R包,getOption("defaultPackages") 函数;②查看已加载的R包,(.packages()) 或者 search ( ) 函数;③查看所有已安装的R包,(.packages(all.available = T))、installed.packages()、library() 函数。# 查看默认加载的R包 getOption ("defaultPackages")
#查看已加载的R包 (.packages( ) )
# 查看所有已安装的R包 (.packages (all.available = T) ) installed.packages ( ) library ( ) 3) 卸除或者卸载R包的方法:①卸除R包,非卸载,detach("package:ggplot2") 函数;②卸载一个或者多个包,remove. packages(c("package1","package2") ..., lib = file.path("path_to_library")) 函数。 # 注意是卸除,而非卸载,意味着把包从R运行环境中彻底去除,只是不希望该包被加载使用。在使用包的同名函数发生冲突时,可以检验函数依赖性。 library ("ggplot2") detach ("package:ggplot2") / require ("ggplot2") pkg <- "package:ggplot2"
# "package1","package1"表示包名,即可以一次性卸载多个包。 remove. packages (c ("package1", "package2"), lib = file.path ("path_to_library") ) # "path_to_library"表示存储R包的library路径,通常情况下只输一个路径即可。使用命令.libPaths ( )可以查看库路径。
# 例子 remove.packages (c ("zoom"), lib = file.path ("C:/Program Files/R/R-3.6.1/library") ) 4) 咨询函数和R包帮助的方法:①help("package name") 函数,如 help ("ggplot2"),再或者 ?ggplot2 来查看ggplot2包的帮助(引号可以省略);②example ("ggplot2") 可以查看ggplot2包里的示例;③data ( ) 列出当前已经加载包中所含的所有可用示例的数据集。 # 利用帮助代码查询所需要的R包 help ("ggplot2") # 或者 ?ggplot2
# 查看R包里的示例 example ("package name")
# 列出已加载R包中的所有可用示例的数据集 data ( ) 附上完整的代码: ##################### # R包的安装与使用过程 #####################
#1 查询当前R包的存储库位置 .libPaths ( )
#2 R包的安装方法 #1) CRAN平台 # 直接利用install.packages("package name")从CRAN下载安装 install.packages ("vegan") # 如果要下载多个包,可以用 c ( ) 来实现 install.packages (c ("package 1", "package 2", "package 3", ···) )
# 或手动安装,先从https://cran./web/packages下载所需要的R语言程序包。 install.packages (file_name_with_path, repos = NULL, type = "source") # 例子 install.packages ("C:\Users\ThinkPad\Desktop\vegan_2.5-7.zip", repos = NULL, type = "source")
#2) Bioconductor平台 # 如果 source 无效,则看https:///install source ("https:///biocLite.R") # 然后用 biocLite ("package name") # 以下是 https:///install 的一种方法 if (! requireNamespace ("BiocManager", quietly = TRUE) ) install.packages ("BiocManager") BiocManager :: install (version ="3.10") # 这是基于 3.6 R版本,如果是 4.0 R版本则使用 version = "3.12" chooseBioCmirror ( ) # 通过修改下载镜像可调节下载R包的速度 BiocManager :: install ("ggtreeExtra")
# 再或者用以下途径完成BioManager安装: install.packages ("BiocManager") BiocManager :: install ("ggtreeExtra") # 指定版本安装 BiocManager :: install ("ggtreeExtra", version = "4.0")
#3) Github平台 # 使用 install_github ( ) 前需要预装 rJava、devtools/remotes包 # 其中windows Java环境需要配置,基本思路是: # 先下载安装jdk,然后添加jdk路径到新建的系统变量 # 具体操作流程可以学习https://blog.csdn.net/weixin_45915507/article/details/105786961
# devtools 包 install.packages ("devtools") library (c ("rJava", "devtools")) install_github ("YuLab-SMU/ggtreeExtra") # 或者 if(!requireNamespace ("devtools", quietly=TRUE)){ install.packages ("devtools") } devtools :: install_github ("YuLab-SMU/ggtreeExtra")
# remotes 包 install.packages("remotes") library ("remotes") install_github ("YuLab-SMU/ggtreeExtra") # 或者 if(!requireNamespace ("remotes", quietly=TRUE)){ install.packages ("remotes") } remotes :: install_github ("YuLab-SMU/ggtreeExtra")
# 此外,有作者开发了 githubinstall 包,与CRAN的安装方式一致, # 但注意使用前先安装Rtools软件。安装时我们仅需输入包的名称,即可完成下载。 install.packages ("githubinstall") library ("githubinstall") githubinstall ("ggtreeExtra")
# R包的使用方法 #1) 加载R包的方法 # 正常加载程序包的方法 library ( ) require ( )
# 一次性加载多个程序包的方法 if (!require ("pacman") ) install.packages ("pacman") # 下载 pacman 包 library ("pacman")# library 加载 pacman 包 p_load (ggplot2, ggthemes, dplyr, readr, showtext, export) # p_load 需要 pacman 包才能运行
#2) 查看R包的方法 # 查看默认加载的R包 getOption ("defaultPackages")
#查看已加载的R包 (.packages( ) )
# 查看所有已安装的R包 (.packages (all.available = T) ) installed.packages ( ) library ( )
#3) 卸除或者卸载R包的方法 # 注意是卸除,而非卸载,意味着把包从R运行环境中彻底去除,只是不希望该包被加载使用。在使用包的同名函数发生冲突时,可以检验函数依赖性。 library ("ggplot2") detach ("package:ggplot2") / require ("ggplot2") pkg <- "package:ggplot2" # "package1","package1"表示包名,即可以一次性卸载多个包。
remove. packages (c ("package1", "package2"), lib = file.path ("path_to_library") ) # "path_to_library"表示存储R包的library路径,通常情况下只输一个路径即可。使用命令.libPaths ( )可以查看库路径。
# 例子 remove.packages (c ("zoom"), lib = file.path ("C:/Program Files/R/R-3.6.1/library") )
#4) 咨询/寻求帮助的函数和R包的方法 # 利用帮助代码查询所需要的R包 help ("ggplot2") # 或者 ?ggplot2
# 查看R包里的示例 example ("package name")
# 列出已加载R包中的所有可用示例的数据集 data ( ) 1) 使用R包的时候,常常看到成功下载了R包后,我们可以利用R包与函数名的联用代码,主要是这个符号" : : "。For exam.,用devtools : : install_github ( )。符号 : : 表示符号前是R包,以及符号后为该R包中的函数,这更加明确了代码,即某R包下某函数的运行。或者,我们也可以把代码分开运行。下载完R包后,用 library ( ) 先载入所需R包,然后再直接用函数运行。2) 卸除R包的代码可熟记,随着你R语言知识掌握的越来越多,代码越来越多,函数越来越多,同名函数也会随之出现, detach ("package:pkg name") 函数能帮你。3) 通常一些函数名中自带点 (.),这个要注意,非常容易遗漏。网上有些代码在完成后,可能没有检查,不小心遗漏了 . ,导致很多初学者一脸懵逼,走了很多弯路,浪费了很多时间。因此,希望这份推文能够帮助大家少走弯路吧。4) 记得用help (),记得help (),记得help (),不懂的一定要学会用 help ( )。该函数的功能非常强大,它如同你学习过程中的老师,只要你看的懂英文,就能把R语言学好。目前,根据自己所学的知识以及网上找到的相关素材,不能说涵盖了所有,但足够咱们学习和使用哒~ 至于新的知识,需要大家在学习时留心哟~ 不懂的欢迎留言~根据自己的理解和素材,本文总结于以下网页,感谢 ~ 1. https://www.jianshu.com/p/d2207011d9a22. https://blog.csdn.net/qq_35008279/article/details/88558601?locationNum=2&fps=13.https://blog.csdn.net/qq_32811489/article/details/81067877
|