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)

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

相关推荐
邢博士谈科教24 分钟前
比传统机器学习更先进的深度学习神经网络的二分类建模全流程教程
数据挖掘·r语言·数据可视化
环能jvav大师2 天前
基于R语言的统计分析基础:使用键盘输入数据
开发语言·学习·数据分析·r语言·人机交互
Red Red2 天前
GEO数据的下载和处理|GEO数据转换为Gene symbol|GEO注释文件提取symbol|查看样本标签|查看GEO数据疾病或正常|生物信息基础
数据库·笔记·学习·r语言·生物信息·geo数据库
不是伍壹2 天前
【R语言】删除数据框中所有行中没有大于200的数值的行
开发语言·r语言
hongyanwin2 天前
商业预测 初识R
r语言·预测
maizeman1262 天前
R语言统计分析——用回归做ANOVA
回归·r语言·方差分析·anova·线性模型
武艺晴小朋友你好3 天前
基于scRNA-data,运用pySCENIC寻找细胞群里面活跃的调节子
r语言·数据可视化·r语言-4.2.1
老身聊发少年狂3 天前
R语言xlsx,txt文件处理:以《书摘》00年-10年资源合集整理为例
开发语言·r语言
为为-180-3121-14553 天前
R语言的Meta分析【全流程、不确定性分析】方法与Meta机器学习技术应用
开发语言·r语言
阿昆的科研日常3 天前
R语言论文插图模板第9期—滑珠散点图
开发语言·r语言·可视化·论文插图