R包的安装与使用

  • R语言程序包的简介
  • R包的主要来源
  • R包安装前的设置
    • 镜像
    • 镜像设置方法
  • R包安装方法
    • 1)CRAN平台
    • 2)Bioconductor平台
    • 3)Github平台
  • R包检查和加载使用
  • R包安装与使用的常见问题
  • 温馨提示

   R语言程序包的安装与使用问题–入门重要环节之一。我们在编写一份完整代码时可能需要用到各式各样的函数,而函数主要都封装在R包中,仅有各别基础函数是R语言自带,这就意味着需要下载很多程序包。截止至今,R语言程序包已经超过2万个,随着业界大神以及大家在使用过程中的需求,会有更多的R包涌入。尽管常用的R包可能只有几百或上千个,但也是初学者在学习时常遇到R程序包使用和安装的报错问题。之前,我在安装export包及其更新时同样遇到了各种坑,尝试了很多种办法才解决。这里,我总结了以下几种被广泛尝试的安装方法,希望对大家有所帮助。

R语言程序包的简介

R语言程序包是函数、数据、代码的一个集合。R包中主要包含函数的含义及用法,还包括数据集和代码示例等。只有将R包载入R程序环境后,其R包里的函数才能被识别、读取和使用。加载后,使用者可以查询到该R包的所有信息,有助于编译代码。

R包的主要来源

首先,我们需要对R包有一个初步的了解,比如最重要的–它的来源。因为R包并不是凭空产生的,都是作者编译好函数后封装成包,然后将其上传到某个平台储存。目前,R包主要都可以从这三大平台下载,分别是CRAN官网平台,Bioconductor生信平台及Github第三方平台。

简单介绍一下三个平台。

  1. CRAN存储了R最新版本的代码和文档的服务器 (https://cran.r-project.org/)。这是R语言官方平台,市面上常用的R包以及已经功能完整度比较高的R包基本都会上传到CRAN官方平台,因此通常可以从rstudio直接用代码下载。另外,可以从官网平台下载所需压缩包,然后在本地进行安装。
  2. 生物信息学领域的Bioconductor平台,它提供的R包主要为基因组数据分析和注释工具(https://bioconductor.org/)。这个平台主要上传了很多关于生信技术相关的R包,如果在遇到相关R包不能从官方CRAN平台下载时,可以优先考虑从这个平台下载。
  3. 面向开源及私有软件的第三方平台–Github。R包的作者更愿意将其存储在该平台,因此很多时候需要在上面下载 (https://github.com/)。如果前两个平台都无法下载,这时可以考虑第三方平台github,这里包含了99%的R包。

R包安装前的设置

镜像

因为需要从主网页下载R包,如果出现异常可以选择切换镜像,这是一个常用解决R包无法下载的方法。镜像网站相当于主网站的副本,在访问主网站存在障碍时,访问镜像的网站也是可以的。R和Bioconductor主网站位于国外,因此我们可以选择国内的镜像可加快访问速度。通常选择清华镜像(tuna,Beijing) 中科大镜像(ustc,Hefei)。

镜像设置方法

方法1:在rstudio的工具栏选择 tools —> global option —> packages —>选择中科大或清华
方法2:通过代码完成设定

options("repos"=c(CRAN="http://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
options(BioC_mirror="http://mirrors.ustc.edu.cn/bioc/")

R包安装方法

1)CRAN平台

  1. 可在CRAN官网查询所需安装R包的名称
  2. 单个R包安装方法:方法1,直接通过代码下载:
install.packages("package name") # 直接从CRAN安装
  1. 单个R包安装方法:方法2,手动安装,先从https://cran.r-project.org/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")
  1. 单个R包安装方法:或者用以下办法完成安装tar.gz/zip格式的程序包。
  2. 单个R包安装方法:方法3,

  3. 多个R包的安装,方法1,代码如下:
install.packages (c ("package 1", "package 2", "package 3",···) )
  1. 多个R包的安装,方法2,利用apply家族函数中sapply,代码如下:
mypackages <-  c("tidyverse","dplyr","stringr","ggplot2","ggpubr")
sapply(mypackages , install.packages, character.only = T)
#三个参数:包含要安装的R包的名称的向量
#安装函数install.packages,character.only = T 可以接受一个字符串变量
  1. 多个R包的安装,方法3,利用循环,代码如下:
mypackages <- c("reshape2", "tidyverse", "ggplot2", "vegan", "caret", "dplyr", "car","ggplot2", "ggpubr", "stringr")
> for (pkgs in mypackages ){if (! require(pkgs, character.only=T) ) {install.packages(pkgs, ask = F, update = F)require(pkgs, character.only=T) }

2)Bioconductor平台

与CRAN安装相似,先 source (“https://bioconductor.org/biocLite.R”) 链接到Bioconductor,然后 biocLite (“package name”) 进行安装。如果下载过慢,用chooseBioCmirror ( ) 更改镜像。如果 source 失效,则根据网站里的介绍选择BioManager : : install ( ) 安装。

  1. 单个R包安装代码如下:
# 如果 source 无效,则看 https://bioconductor.org/install
source ("https://bioconductor.org/biocLite.R") # 然后用 biocLite ("package name")
# 以下是 https://bioconductor.org/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")
# 指定版本安装
BiocManager : : install ("ggtreeExtra", version = "4.0")
  1. 多个R包安装,我们还是可以使用sapply函数,代码如下:
biopackages <- c("pcaMethods", "GO.db", "topGO", "clusterProfiler", "biomaRt")
sapply(biopackages, BiocManager::install, character.only = T) # 提前安装好BiocManager包就可以

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")

R包检查和加载使用

  1. 我们先查询当前R包的存储库位置,可以通过 .libPaths ( ) 函数完成。
.libPaths ( ) #点 . 需要注意容易遗漏

得到结果:电脑本身的R位置和本地位置,两条路径。

  1. 获取所有已经安装的R包列表,利用 library ( ) 函数完成。
library ( )

结果如图:该路径下所有R包的列表。

  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 包才能运行# 或者使用循环加载
check.packages <- function(pkg){new.pkg <- pkg[!(pkg %in% installed.packages()[, "Package"])]if (length(new.pkg)) install.packages(new.pkg, dependencies = TRUE)sapply(pkg, require, character.only = TRUE)
}packages <- c("ggplot2", "GGally", "dplyr","dplyr","lubridate","tidyverse","cluster","factoextra","rdist","gridExtra","chron","reshape2","pheatmap")
check.packages(packages)
  1. 查看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 ( )
  1. 卸除或者卸载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") )
  1. 咨询函数和R包帮助的方法:
    ①help(“package name”) 函数,如 help (“ggplot2”),再或者 ?ggplot2 来查看ggplot2包的帮助(引号可以省略);
    ②example (“ggplot2”) 可以查看ggplot2包里的示例;
    ③data ( ) 列出当前已经加载包中所含的所有可用示例的数据集。
# 利用帮助代码查询所需要的R包
help ("ggplot2")
# 或者
?ggplot2# 查看R包里的示例
example ("package name")# 列出已加载R包中的所有可用示例的数据集
data ( )

R包安装与使用的常见问题

  1. 如果出现了大量的提示信息,不要慌张。只要不是error,都可以忽略。
  2. packages not available。
    ①可能是R包名称错误
    ②安装命令使用错误
    ③计算机当前R语言版本与包所要求的版本不符合
  3. 从生信平台下载R包时,不选择更新。能不更新就不更新,除非一直报错。安装命令install.packages() 或者是BiocManager::install()函数可以选择添加参数:update = F, ask = F。问是否更新的、“不存在”的是依赖包
  4. 依赖包问题
    是否更新的是依赖包,R包之间可能存在复杂的依赖关系,使用A包,就必须同时用B、C, 而C又依赖了D包。理论上: 安装A,就会自动安装BCD 加载A,就会自动加载BCD 实际上:常会因为一两个依赖包的安装失败,导致你想安装的那个包安装失败。
  5. R包储存库中显示该R包需要大于某个版本才可以使用,这时需要先将该R包删除(用remove.packages,然后再重新下载就是最新的了。)
  6. connection问题。切换镜像,检查网络连接,如果都没有问题,运行。

温馨提示

  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语言学好。

入门必学 | R语言程序包的安装与使用指南相关推荐

  1. 入门必学 | R语言数值型、字符型及因子型数据之间的差异与转换

    字符型.数值型及因子型数据之间的转换 数据类型的基本知识 不同数据类型之间的差异 数值型与字符型或因子型绘图时的差异 数值型与因子型和字符型的模型构建时的差异 三种数据类型之间进行转换    常用的三 ...

  2. 入门必学 | R语言数据的独立性,正态性及方差齐性检验

    参数分析的三大前提检验 检验数据独立性的方法 Chisq检验 Fisher检验 Cochran-Mantel-Haenszel检验 检验数据正态性的方法 shapiro.test函数 qqnorm函数 ...

  3. R语言dplyr包超完整版函数指南

    R语言dplyr包的使用 一.常用函数功能速查 二.常用函数详解 iris数据集 1. 取子集 filter/distinct slice select 2. 窗口函数 3. 连接合并 left_jo ...

  4. 如何从CRAN上下载R语言程序包

    以ElemStatLearn包为例 在r studio4.0.3版本中输入install.packages("ElemStatLearn")无法下载ElemStatLearn包 提 ...

  5. R语言-rethinking包下载安装心得(windows)

    本人科研萌新一枚,近期因为学习了一本McElreath 2020. Statistical Rethinking, 2nd edition, CRC Press ,需要使用到 R 语言的rethink ...

  6. R语言 | xlsx包的安装(附链接:java环境变量的配置与详解)

    在下载xlsx包之前,要先下载java并且完成环境变量的设置 详细的教程见:(7条消息) java环境变量 的配置与详解(全网最详细教程)_S-D-C-L-Yourn的博客-CSDN博客_java环境 ...

  7. R语言程序包下载地址:CRAN Packages

    从官网下载自己需要的包 ​​​​​​​CRAN Packages By Name ctrl+F搜索自己需要的包 从github上下载包: 1.安装并加载devtools软件包​​​​​​​ insta ...

  8. r语言 林元震_林木多地点半同胞子代测定遗传分析 R语言程序包及其应用

    [1]孔繁浩,阮梓材.半同胞子代测定的试验设计和分析[j].广东林业科技,1988(1):32-35.kongfh,ruanzc.theexperimentaldesignandanalysisofh ...

  9. 关于R语言plyr包的安装问题

    平时安装R包都是从Rstudio中进行的,今天在装plyr包的时候,Rstudio一直报错,示例如下: 是不是很无语啊,搞了半天不知所以然,然后突发奇想从Rgui中安装试下,没想到轻轻松松就成功了,示 ...

  10. 数据分析必备:掌握这个R语言基础包1%的功能,你就很牛了

    导读:无论数据分析的目的是什么,将数据导入R中的过程都是不可或缺的.毕竟巧妇难为无米之炊. utils包是R语言的基础包之一.这个包最重要的任务其实并不是进行数据导入,而是为编程和开发R包提供非常实用 ...

最新文章

  1. java多对多关联数据操作,hibernate实施多对多关联查询时,关联表数据被删除
  2. dubbo源码解析(九)远程通信——Transport层
  3. 谈谈对MVC的理解(View+Model+Controller)
  4. 十一.激光惯导LIO-SLAM框架学习之LIO-SAM框架---框架介绍和运行演示
  5. (208)ASIC开发总结
  6. Linux Fedora8 下安装 IE6
  7. 亚马逊 kindle 刷机 过程记录
  8. 三款常用IP发包工具介绍
  9. newifi路由器 php,新路由newifi固件下载
  10. 项目管理和软件开发的边界
  11. e 服务器怎么注册不了怎么办,IMVU注册不了怎么办 服务器错误怎么办
  12. 阿里云轻量服务器WordPress镜像建网站教程(图)
  13. 初中信息技术面试计算机网络,2019下半年中学信息技术教师资格面试真题完整版...
  14. 计算机 基础知识练习题
  15. RabbitMQ mandatory参数 路由器匹配不到队列返回响应
  16. 域服务器禁用无线,无线域服务常见问题
  17. Unity 和 Android Studio的SDK接入(新手心得)
  18. Linux环境下连连看游戏代码,《连连看》算法C语言演示(自动连连看)
  19. Python实战案例,pywifi模块,Python暴力破译附近局域网WiFi密码
  20. Android创建杀不死的Service

热门文章

  1. java核心技术卷一,二(经典)
  2. c语言交通灯程序闪烁,单片机交通灯闪烁程序
  3. android手机命令,使用adb命令操控Android手机(adb命令)
  4. Fiddler的安装与使用
  5. Keli Proteus 8 的使用教程
  6. 在java中关于封装性的说法中错误的是_java题库2
  7. 通达信资金净流入公式_资金净流入(通达信)公式
  8. 软件测试必问必背面试题
  9. 2015 年 5 月软考网络工程师真题与参考答案
  10. 牛客网最终python笔试题_牛客笔试题之Python