R 包管理

R 包管理

2024-09-04

函数总结

函数 功能
install.packages() 安装包。不加参数,显示CRAN镜像站点站点,加包名称,直接下载安装包
installed.packages() 列出安装的包
update.packages() 更新已安装的包
library("lib name") 载入包
library() 不带参数,查看已安装的 R 包
search() 编译环境下已载入的包
help(package="package_name") 输出某个包的简短描述,以及包中的函数名称和数据集名称的列表

简介

R 包为 R 函数集合。

载入包

R 包在使用前,需要载入当前的 R 环境。载入包命令:

r 复制代码
library("package_name", lib.loc = "path to library")

安装多个包:

r 复制代码
install.packages(c("ggplot2", "devtools", "dplyr"))

如果下载太慢,可以设置镜像:Tools > Global Options... > Packages > Choose HTTPS CRAN Mirror。

安装包

r 复制代码
install.packages(pkgs, lib, repos = getOption("repos"),
                 contriburl = contrib.url(repos, type),
                 method, available = NULL, destdir = NULL,
                 dependencies = NA, type = getOption("pkgType"),
                 configure.args = getOption("configure.args"),
                 configure.vars = getOption("configure.vars"),
                 clean = FALSE, Ncpus = getOption("Ncpus", 1L),
                 verbose = getOption("verbose"),
                 libs_only = FALSE, INSTALL_opts, quiet = FALSE,
                 keep_outputs = FALSE, ...)

参数:

  • repos,指定镜像

以安装sos包为例。sos 包用来搜索某些函数的帮助文档。 在RStudio中用 Tools 菜单的"Install Packages"安装, 输入sos就可以安装该扩展包。

如果不用RStudio, 在 R 图形界面选菜单"程序包-安装程序包",在弹出的"CRAN mirror"选择窗口中选择一个中国的镜像如 "China (Beijing 2)", 然后在弹出的"Packages"选择窗口中选择要安装的扩展软件包名称, 即可完成下载和安装。

还可以用如下程序制定镜像网站(例子中是位于清华大学的镜像网站)并安装指定的扩展包:

r 复制代码
options(repos=c(CRAN="http://mirror.tuna.tsinghua.edu.cn/CRAN/"))
install.packages("sos")
  • 安装一个包
R 复制代码
install.packages("package name")
  • 一次安装多个包
R 复制代码
install.packages(c("ggplot2", "reshape2", "dplyr"))

选择安装路径

如果权限允许,可以选择安装在R软件的主目录内或者用户自己的私有目录位置。

由于用户对子目录的读写有权限问题,有时不允许一般用户安装扩展包到 R 的主目录中。此时可以用 .libPaths()查看允许的扩展包安装位置。

在 install.packages() 中用 lib= 指定安装位置:

r 复制代码
print(.libPaths())
## [1] "D:/R/R-3.3.1/library"
install.packages("sos", lib=.libPaths()[1])

更新包

r 复制代码
update.packages()

对每个可更新包,会出现一个弹窗询问是否更新。如果不需要弹窗,直接更新,可以设置:

r 复制代码
update.packages(ask = FALSE)

示例:同时更新 ggplot2, reshape2 和 dplyr 三个包

R 复制代码
update.packages(c("ggplot2", "reshape2", "dplyr"))

更新 package 后,需要启动新的 R 会话才能使用新版本的 package。

如果在更新前已经加载了该 package,则需要关闭旧 R 会话,打开新的 R 会话。

devtools

devtools R package 提供从 CRAN 以外的地方安装 package 的功能。devtools 提供了:

  • install_github
  • install_gitorious
  • install_bitbucket
  • install_url

等函数。它们功能类似 install.packages,但是 repository 不同。其中 install_github 特别有用,因为许多 R 开发者在 GitHub 上提供它们包的开发版本。开发版本包含新功能和补丁,但是可能没有 CRAN 版本稳定。

GitHub 和 BioConductor

有一些扩展包没有在CRAN系统提供,而是放在 Github。对于这样的包, 安装方法如下:

r 复制代码
if(!require(devtools)) install.packages('devtools')
	devtools::install_github("kjhealy/socviz")

其中 kjhealy 是 Github 网站的某个作者的名称, socviz 是该作者名下的一个R扩展包。

还有一些包需要从Bioconductor网站安装:

  • 需要先安装 BiocManager
  • 然后用 BiocManager 安装 Bioconductor 中的包

示例如下:

r 复制代码
if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install(c("Biostrings"))

加载包

例如,载入 RWeka 包:

r 复制代码
library(RWeka)
  • 查看当前库中有哪些 package
r 复制代码
library()

迁移扩展包

在每一次 R 软件更新后,需要重新安装原来的软件包, 这个过程很麻烦。 如果仅仅是小的版本更新, 比如从3.5.1变成3.5.2, 或者从3.4.2变成3.5.0, 可以在安装新版本后, 临时将新版本的 library 子目录更名为 library0, 将老版本的library子目录剪切为新版本的library子目录, 然后将library0中所有内容复制并覆盖进入library子目录, 删除library0即可。 然后在基本R中(不要用RStudio)运行如下命令以更新有新版本的包:

r 复制代码
options(repos=c(CRAN="http://mirror.tuna.tsinghua.edu.cn/CRAN/"))
update.packages(checkBuilt=TRUE, ask=FALSE)

如果版本改变比较大, 可以用如下方法批量地重新安装原有的软件包。 首先,在更新R软件前,在原来的R中运行:

r 复制代码
packages <- .packages(TRUE)
dump("packages", file="packages-20180704.R")

这样可以获得要安装的软件包的列表。 在更新R软件后, 运行如下程序:

r 复制代码
options(repos=c(CRAN="http://mirror.tuna.tsinghua.edu.cn/CRAN/"))
source("packages-20180704.R")
install.packages(packages)

安装时如果提问是否安装需要编译的源代码包, 最好选择否, 因为安装源代码包速度很慢还有可能失败。

相关推荐
Omics Pro15 小时前
~30,000+引用!理论2005,R包2008,多组学集成AI增强
开发语言·数据库·人工智能·算法·机器学习·自然语言处理·r语言
天桥下的卖艺者3 天前
chrals.CTI函数升级版发布,增加了CTI衍生的脂肪指数提取
数据库·r语言
小师兄吃牛肉4 天前
什么是R语言?如何快速学习R语言
开发语言·学习·r语言
喆星时瑜4 天前
Win10/11 安装 R 与 RStudio 详细图文教程
开发语言·r语言·安装
喆星时瑜5 天前
R语言基础语法入门
开发语言·r语言
喆星时瑜5 天前
R语言向量语法的详细教程
开发语言·r语言
临床数据科学和人工智能兴趣组7 天前
在R语言中, 使用 as.factor() 函数转换数值型变量
开发语言·r语言
babe小鑫16 天前
信息与计算科学专业应届生面试 怎么证明自己能解决业务问题
学习·r语言·excel
深兰科技18 天前
深兰科技受邀参与第二届中国(南宁)—东盟人工智能场景应用对接会,深化AI国际合作
人工智能·qt·r语言·scala·symfony·智能机器人·深兰科技
赵钰老师19 天前
基于ArcGIS Pro、R、INVEST等多技术融合下生态系统服务权衡与协同动态分析
python·arcgis·数据分析·r语言