R - 包
R - 包和项目管理
Section titled “R - 包和项目管理”R 的强大之处在于其庞大的**包(packages)**生态系统:它们是函数、数据和编译代码的集合,用于扩展 R 的能力。这些包存储在一个名为“库(library)”的目录中。虽然基础 R 功能强大,但几乎所有实际项目都会依赖外部包。
查找、安装和加载包
Section titled “查找、安装和加载包”R 包的主要存储库是 综合 R 归档网络 (CRAN - Comprehensive R Archive Network)。你可以轻松地从 CRAN 安装和加载包。
# 1. 从 CRAN 安装一个包(你只需要执行一次)# 让我们安装 'dplyr',这是一个核心数据操作包。install.packages("dplyr")
# 你也可以一次安装多个包install.packages(c("ggplot2", "readr"))
# 2. 将包加载到 R 会话中以使用其函数# 每次启动新的 R 会话时都必须执行此操作。library(dplyr)
# 现在你可以使用 dplyr 包中的函数,例如 glimpse()# (以内置的 'mtcars' 数据集为例)data(mtcars)glimpse(mtcars)检查你的环境
Section titled “检查你的环境”你可以使用几个简单的命令检查你的包设置。
# 查看当前会话中加载了哪些包search()
# 获取你的包存储的文件路径.libPaths()
# 查看库中所有已安装的包(这可能是一个很长的列表!)# 在 RStudio 中,'Packages' 窗格是一种更用户友好的浏览方式。# installed.packages()使用 renv 进行现代项目管理
Section titled “使用 renv 进行现代项目管理”数据科学中的一个常见问题是可复现性(reproducibility)。如果你与同事分享代码,或者一年后再次查看代码,你需要确保它能够以正确的包版本正确运行。R 中针对此问题的现代解决方案是 renv 包,它会创建项目专用的、隔离的库。
可复现的工作流
Section titled “可复现的工作流”以下是启动新可复现项目的最佳实践工作流:
- 创建 RStudio 项目:转到
File > New Project... > New Directory > New Project。这会为你的所有项目文件创建一个自包含的文件夹。 - 初始化
renv:在控制台中运行renv::init()。这会创建一个项目本地库和一个renv.lock文件来跟踪包版本。 - 安装并工作:安装你需要的包(例如
install.packages("tidyverse"))。renv会将它们安装到项目的私有库中。 - 保存状态:当你安装或更新包后,运行
renv::snapshot()。这会使用你使用的确切版本更新renv.lock文件。 - 分享:当你分享项目文件夹时,其他人可以运行
renv::restore()来安装完全相同的包版本,从而保证代码将以相同的方式运行。
# 步骤 2: 在新的 RStudio 项目中初始化 renv# renv::init()
# 步骤 3: 按需安装包# install.packages("remotes")
# 步骤 4: 将库的状态保存到 lockfile 中# renv::snapshot()
# 步骤 5: 如果其他人打开你的项目,他们运行此命令以获取相同的包# renv::restore()核心包生态系统
Section titled “核心包生态系统”与其逐个安装包,不如安装精选的包集合更有效。其中最重要的是 tidyverse。
tidyverse:一个元软件包(meta-package),它安装了一套基本的数据科学包,这些包共享相同的理念和一致的语法。它包括dplyr(数据操作)、ggplot2(可视化)、readr(数据导入)、tidyr(数据整理)、stringr(字符串操作)等。tidymodels:一个用于建模和机器学习的元软件包,为整个建模流程提供了一个统一和现代的框架。
# 安装整个 tidyverse 集合install.packages("tidyverse")
# 加载核心 tidyverse 包library(tidyverse)最佳实践:对于任何新的分析,请从创建 RStudio 项目并使用 renv 进行依赖管理开始。这将使你的工作更专业、更易于移植和可复现。