分享

R语言 | 如果你再问我怎么安装R包

 生物_医药_科研 2018-12-11

但仍然被问如何安装R包,安装不了怎办?

我想了,大概有两个原因:

1、R语言 | R包安装大法 中内容太多,懒得看

2、对最近一直推崇的pacman,还没有做个较为详细的描述

所以,本篇将对pacman包管理工具中的主要函数做个介绍。所以,如果你再问R包怎么装,我就把这篇文章发给你!

加上上面两篇推文,要三篇一起才是最好!

Tools to more conveniently perform tasks associated with add-on packages. pacman conveniently wraps library and package related functions and names them in an intuitive and consistent fashion. It seeks to combine functionality from lower level functions which can speed up workflow.

在使用之前需要先安装加载pacman包

  1. install.packages('pacman', repos = 'https://mirror./CRAN/')

  2. library(pacman)

p_load

主函数 p_load 用于安装 CRAN 和 bioconductor 等包(自动识别包的来源,不包括 Github 上的包)。如果未安装,则进行安装(相当于 install.packagesbiocLite 等)和加载(相当于 library );如果已经安装,则相当于加载!

需要注意的是:

1、与常规的包安装命令相比, p_load 函数中的包名不需要加双引号,如安装GEOquery包:

  1. p_load(GEOquery)

2、如果之前未安装该包,则会在安装完成后显示一个警告:

Warning message:package ‘GEOquery’ is not available (for R version 3.5.1)

但并不代表该包未正常安装,而是 p_load 函数内部有先行判断的命令,检测到之前未安装,才会有该警告,可以先运行 options(warn=-1) 命令使其不显示!

3、 p_load 支持多种来源的多个包同时安装/加载,且不需要用 c() 的方式将各包名创建向量,如下:

  1. p_load(limma, GEOquery, devtools)

p_install

p_load 用于安装和加载,而 p_install 只用于安装,但这并不意味着 p_install就是鸡肋,例如,想重新安装GEOquery包,此时使用 p_load 就会直接加载,而 p_install 会重新安装,等同于先卸载再 p_load

  1. p_install(GEOquery)

p_load_gh

使用 p_load_gh 函数(实际调用 devtools 的 install_github 函数)安装Github上的R包

  1. p_load_gh('tidyverse/readr')

同理,支持多个包的同时安装, p_install_gh 函数实现只安装不加载!

p_isinstalled

查看某个包是否已经被安装,如survminer包:

  1. p_isinstalled(survminer)    # 等同于 p_exists(survminer)

如果已经安装则返回TRUE,否则返回FALSE。

p_version

查看当前某个包的版本,如survminer:

  1. p_version(survminer)    # 等同于 packageVersion('survminer')

如果当前不存在该包,则会报错:

Error in utils::packageVersion(package) :package ‘survminer‘ not found

p_install_version

安装最低为某版本的R包,如下安装 survminer 最低 v0.4.1版本,如果当前已经满足(如已安装了v0.4.2),则跳过:

  1. p_install_version('survminer', '0.4.1')

Version of survminer (v. 0.4.2) is suitable

同理,支持多个包的同时安装,使用 p_install_version_gh 可以安装最低为某版本的 Github上 的R包!

p_library

查看已经安装的包(只显示包名),如果想获取更多包的信息,建议使用R内置的 installed.packages() 函数!

  1. p_library()   # 等同于 p_lib()

p_delete

p_delete 函数调用 remove.packages 进行包的卸载,给定包名,卸载任何来源的R包:

  1. p_delete(GEOquery)

The following packages have been deleted:GEOquery

同样支持多个包的同时卸载!

p_path

等同于R内置的 .libPaths() 函数,用于查看系统中R包的安装路径:

  1. p_path()

[1] '/Library/Frameworks/R.framework/Versions/3.5/Resources/library'

p_opendir

这个比较有意思,直接打开系统中的文件夹

  1. p_opendir()    # 默认打开当前工作目录

所以不用再自己点点点了!

更多用法参考:

https://cran./web/packages/pacman/pacman.pdf

https://cran./web/packages/pacman/vignettes/Introductiontopacman.html

综上,pacman可以替代常规的包管理方式,所以可以将其设置成系统默认,即不用手动加载pacman包就可以使用上示的这些包管理命令,详见:

R语言 | 能自动完成的R包加载

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多