R语言从入门到精通Day3之【包的使用】
包的使用
本节从什么是R包、R包的下载、R包的使用、包的实践与管理四个方面对R包的使用进行介绍。
R的庞大生态系统覆盖了从数据整理、统计分析、机器学习、可视化到特定领域应用(如金融、生物信息、社会科学、地理空间分析等)的几乎所有方面。截止目前,官方收录的R包已有20000+,通过获取R包,可以站在巨人的肩膀上,以最简单的方式快速完成自己的任务。
欢迎大家在评论区留言或私信,交流学习心得或学习R的过程中遇到的问题。感谢大家的支持和关注,您的支持是我创作的最大动力。
目录
- 包的使用
- 1.什么是R包?
- 2.包的安装
- 2.1 从 CRAN 安装 (最常用)
- 2.2 从 Bioconductor 安装
- 2.3 从 GitHub 安装 (安装开发版)
- 3.包的使用
- 3.1 包的加载
- 3.2 包的使用
- 3.3 查看包的信息和帮助
- 3.4 包的更新和卸载
- 4.包的实践和管理
- 4.1 在脚本开头加载所有需要的包
- 4.2 使用 pacman 包进行高效的包管理
- 4.3 项目依赖管理:renv()
1.什么是R包?
R 包是 R 函数、数据、预编译代码的集合,以一种标准化的方式打包。你可以把它理解为一个扩展插件,分基础R包和拓展R包。
基础 R包: 安装 R 时就自带的包,提供了最基本的功能,如 mean(), plot() 等。
扩展包: 由全球的 R 用户和统计学家开发,用于实现特定的功能,例如数据清洗 (dplyr)、绘图 (ggplot2)、机器学习 (tidymodels) 等。这正是 R 生态系统如此强大的原因。
R 有一个官方的发布平台 CRAN,以及其他的如 Bioconductor (生物信息学) 和 GitHub (开发版本)。
2.包的安装
2.1 从 CRAN 安装 (最常用)
该方法是最常用的方法,代码如下:
# 安装单个包
install.packages("dplyr")# 一次性安装多个包
install.packages(c("ggplot2", "tidyr", "readr"))
2.2 从 Bioconductor 安装
Bioconductor 的包有自己的一套安装方法。
# 首先安装 BiocManager 包(如果还没安装的话)
if (!require("BiocManager", quietly = TRUE))install.packages("BiocManager")# 使用 BiocManager 安装 Bioconductor 的包
BiocManager::install("DESeq2")
2.3 从 GitHub 安装 (安装开发版)
有时开发者最新的功能还在 GitHub 上,未发布到 CRAN,可以使用 devtools 包来安装。
# 首先安装 devtools
install.packages("devtools")# 从 GitHub 安装
devtools::install_github("tidyverse/dplyr")
3.包的使用
3.1 包的加载
安装包只是将包的文件下载到你的电脑上。要使用包里的函数,你需要加载它到当前的工作环境中。
# 使用 library() 函数
library(dplyr)# 或者使用 require() 函数
require(ggplot2)
library() 和 require() 的主要区别在于,如果包不存在,library() 会报错并停止执行,而 require() 会返回 FALSE 并发出警告,但代码会继续执行。因此,在函数内部通常使用 require()。
注意: 安装一个包只需要做一次,但每次开启新的 R 会话并想使用它时,都需要重新加载。
3.2 包的使用
加载包后,你可以直接使用包中的函数,以dplyr包为例。
library(dplyr)
# 使用 dplyr 中的 filter 函数
filtered_data <- filter(mtcars, mpg > 10) #mtcars是一个内置数据集
【注意】冲突问题
当两个包有同名函数时,后加载的包会“掩盖”先加载的包的函数。你会看到这样的提示:
The following object is masked from ‘package:stats’: filter
这时,为了明确指定使用哪个包的函数,可以使用 :: 操作符。
# 明确指定使用 dplyr 的 filter 函数
result1 <- dplyr::filter(mtcars, mpg > 20)# 明确指定使用 stats 的 filter 函数 (时间序列的线性滤波)
result2 <- stats::filter(mtcars$mpg, rep(1, 3))
这是一种很好的编程习惯,可以使代码意图更清晰,避免潜在的冲突。
3.3 查看包的信息和帮助
R提供了R包的使用介绍文档
# 查看已安装的所有包
library()# 查看当前已加载的包
search()# 查看某个包的帮助文档首页
help(package = "dplyr")# 查看包中某个特定函数的帮助
?filter
help("filter")# 查看包的版本
packageVersion("dplyr")# 列出包中的所有函数和数据
ls("package:dplyr")
3.4 包的更新和卸载
# 检查所有已安装包的更新
update.packages()# 卸载某个包
remove.packages("dplyr")# 查看包安装路径
.libPaths()
4.包的实践和管理
4.1 在脚本开头加载所有需要的包
这是一个好习惯,可以让别人(或未来的你)一眼就知道运行这个脚本需要哪些包。
# 脚本开头
library(ggplot2)
library(dplyr)
library(readr)
4.2 使用 pacman 包进行高效的包管理
pacman 包提供了一个更便捷的工具来管理你的 R 包。
# 安装 pacman
install.packages("pacman")# 使用 p_load 来安装(如果未安装)并加载包
pacman::p_load(dplyr, ggplot2, tidyr)# 检查一个包是否已安装
pacman::p_isinstalled(dplyr)
4.3 项目依赖管理:renv()
对于复杂的项目,为了确保其可重现性(在不同电脑或不同时间都能运行),推荐使用 renv 包。它可以为每个项目创建一个独立的 R 环境,记录下项目所使用的所有包的特定版本。
# 安装 renv
install.packages("renv")# 在你的项目目录中
renv::init() # 初始化一个全新的项目本地环境# ... 进行你的项目工作,安装各种包 ...
renv::snapshot() # 将当前项目的包状态保存到 renv.lock 文件中
当别人拿到你的项目和 renv.lock 文件时,他们只需运行 renv::restore() 就可以安装完全相同的包版本,完美复现你的工作环境。
大家在使用的时候遇到任何问题欢迎留言,您的支持是我创作的最大动力。