工具:安装R语言的R包的各种方法

欢迎大家关注全网生信学习者系列:

  • WX公zhong号:生信学习者
  • Xiao hong书:生信学习者
  • 知hu:生信学习者
  • CDSN:生信学习者2

介绍

R语言提供的大量R包为众多研究者提供了足够的工具,但是如何安装R包是很多人在使用R语言做数据分析时候所面临的问题之一。接下来介绍如何大规模安装所需要的R包。

常用安装

  1. install.packages函数是我们常用的安装R包的方式,需要注意的是这些R包必须是在CRAN仓库中,否则安装将会失败。安装方式可以将单个包作为变量传输进入,也可以以向量模式传递多个包。
R 复制代码
# Installation of required packages in single model
install.packages("tidyverse")
install.packages("ggplot2")
install.packages("dplyr")
install.packages("tidyr")

# mulitple packages in one command line
install.packages(c("tidyverse", "ggplot2", "dplyr", "tidyr"))

# load packages
library("tidyverse")
library("ggplot2")
library("dplyr")
library("tidyr")
  1. 这里不得不提的是另一个存放R包的网址bioconductor 。该项目是存放了大量用于生物研究的R包,很多做生物信息分析的人都会使用里面提供的R包。它的安装包是通过BiocManager 包提供的install函数实现的。

The mission of the Bioconductor project is to develop, support, and disseminate free open source software that facilitates rigorous and reproducible analysis of data from current and emerging biological assays.

R 复制代码
# Installation of required packages in single model
BiocManager::install("DESeq2")
BiocManager::install("gsva")

# mulitple packages in one command line
BiocManager::install(c("DESeq2", "gsva"))

# load packages
library("DESeq2")
library("gsva")
  1. 还有一类是开发者把未经过CRAN或bioconductor等审核过但存放在如github, gitlab等开源网站的R包,这类R包可以分别通过devtoolsremote 包的 install_githubinstall_gitlab等函数安装。
R 复制代码
devtools::install_github("HuaZou/MyRtools")
remotes::install_github("HuaZou/MyRtools")

devtools::install_version("Rcpp", version = "1.0.4.6",repos = "[http://cran.us.r-project.org](http://cran.us.r-project.org)")
  1. 除了联网安装R包外,R还提供本地下载压缩包安装模式。
R 复制代码
install.packages("local/packagename.tar.gz", repos=NULL, type="source")

高效方式一

随着时间流逝,安装的R包也越来越多,如何快捷分辨出未安装过的R包就显得尤其重要。我们可以通过 installed.packages函数判断,并使用lapply函数分次安装所有的R包。构建函数,使其具有如下功能:

  1. 判断未安装R包;
  2. 使用 install.packagesBiocManager::install函数安装来源你不同的R包;
  3. 用lapply分别加载R包,并不输出加载过程中产生的信息。
R 复制代码
packages_CRAN <- c("tidyverse", "ggplot2", "dplyr", "tidyr")
packages_biocond <- c("DESeq2", "gsva")

InstallPackageFun <- function(packages=packages_CRAN , type="CRAN"){
    #packages=packages_CRAN
    #type="CRAN"

    # Install packages not yet installed
    installed_packages <- packages %in% rownames(installed.packages())
    if (any(installed_packages == FALSE)) {
        if(type == "CRAN"){
         lapply(packages[!installed_packages], install.packages)        
        }else{
         lapply(packages[!installed_packages], BiocManager::install) 
        }
  }
  # Packages Loading 
  invisible(lapply(packages, library, character.only = TRUE)) 
}
InstallPackageFun(packages=packages_CRAN , type="CRAN")
InstallPackageFun(packages=packages_biocond , type="bioconductor")

高效方式二

除了上面这种大规模安装未安装过的R包外,还可以通过已经构建好的R包内置函数安装,例如现在比较友好的R pacman ,它提供的p_load 函数其实可以看成是上述InstallPackageFun 的升级版本。还有一个librarian 包提供的shelf 函数和p_load有类似的功能。

  • pacman
R 复制代码
install.packages("pacman")

pacman::p_load(ggplot2, tidyr, dplyr)
  • librarian
R 复制代码
install.packages("librarian")

librarian::shelf(ggplot2, DESeq2)
相关推荐
程序修理员10 分钟前
java+vue实现文件下载进度条
java·开发语言·vue.js
梁正雄15 分钟前
10、Python面向对象编程-2
开发语言·python
Jo乔戈里19 分钟前
Python复制文件到剪切板
开发语言·python
任子菲阳32 分钟前
学Java第五十三天——IO综合练习(1)
java·开发语言·爬虫
繁华似锦respect36 分钟前
单例模式出现多个单例怎么确定初始化顺序?
java·开发语言·c++·单例模式·设计模式·哈希算法·散列表
码农很忙37 分钟前
让复杂AI应用构建像搭积木:Spring AI Alibaba Graph深度指南与源码拆解
开发语言·人工智能·python
渡我白衣42 分钟前
计算机组成原理(1):计算机发展历程
java·运维·开发语言·网络·c++·笔记·硬件架构
霸王大陆44 分钟前
《零基础学 PHP:从入门到实战》模块十:从应用到精通——掌握PHP进阶技术与现代化开发实战-4
开发语言·php
脾气有点小暴1 小时前
JavaScript 数据存储方法全解析:从基础到进阶
开发语言·javascript·ecmascript
繁华似锦respect1 小时前
C++ 内存分配器-allocator
开发语言·c++·设计模式