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)

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

相关推荐
有梦想的Frank博士1 天前
R语言*号标识显著性差异判断组间差异是否具有统计意义
开发语言·信息可视化·r语言
逆风远航4 天前
R语言贝叶斯:INLA下的贝叶斯回归、生存分析、随机游走、广义可加模型、极端数据的贝叶斯分析
开发语言·r语言·贝叶斯·生态学·结构方程·环境科学·混合效应
Faxxtty4 天前
【R语言】解决package ‘qvalue’ is not available (for R version 3.6.1)
开发语言·r语言
Cachel wood5 天前
Vue前端框架:Vue前端项目文件目录
java·前端·vue.js·python·算法·r语言·前端框架
邢博士谈科教5 天前
OmicsTools软件和R语言分析环境安装配置答疑汇总最新版
r语言
纪伊路上盛名在6 天前
vscode中提升效率的插件扩展——待更新
linux·服务器·ide·vscode·python·r语言·编辑器
拓端研究室TRL6 天前
银行信贷风控专题:Python、R 语言机器学习数据挖掘应用实例合集:xgboost、决策树、随机森林、贝叶斯等...
python·决策树·机器学习·数据挖掘·r语言
在在进步6 天前
R数据结构&向量基础
数据结构·r语言
琼火hu8 天前
R语言笔记(五):Apply函数
开发语言·笔记·r语言·apply
扛着仪器去爬山8 天前
R语言结构方程模型(SEM)
r语言·贝叶斯·生态学·结构方程·混合效应·sem