1. 初始化项目

  • 在当前目录下创建一个文件夹,是包含一个R project对象的工作环境;
  • 其中library文件夹是该工作环境安装R包的路径,renv.lock是记录R包及其版本后的重要文件。
1
2
3
renv::init("foo_project") 
#初始化后会自动切换到该环境下,如果没有可以手动切换
# setwd("foo_project")

image-20240405112909657

  • 在初始化时,会安装一些基本的R包
1
2
3
4
5
6
7
8
dim(installed.packages())
# [1] 30 16
names(installed.packages()[,1])
# [1] "renv"       "base"       "boot"       "class"      "cluster"    "codetools" 
# [7] "compiler"   "datasets"   "foreign"    "graphics"   "grDevices"  "grid"      
# [13] "KernSmooth" "lattice"    "MASS"       "Matrix"     "methods"    "mgcv"      
# [19] "nlme"       "nnet"       "parallel"   "rpart"      "spatial"    "splines"   
# [25] "stats"      "stats4"     "survival"   "tcltk"      "tools"      "utils"    

2. 安装包

  • 在执行项目过程中,需要安装特定的R包时,建议使用renv::install()
  • 该函数支持下载来自不同repository库来源的R包
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# (1) CRAN
renv::install("ggplot2")

# (2) Bioconductor
renv::install("BiocManager")
renv::install("bioc::limma")  # "bioc::pkgname"

# (3) Github
renv::install("easystats/correlation")

# (4) 其它更多详细的安装方式,见帮助文档
?renv::install()
# https://rstudio.github.io/renv/articles/package-sources.html

3. 更新lock.file

  • lock.file文件为json格式,是记录R包工作环境的重要文件。
image-20240405135723941
  • 使用renv::snapshot()将当前环境的R包信息更新到lock.file文件
1
2
3
renv::snapshot()
# 如果更新失败,参考文档可自行如下设置后,再次更新
renv::settings$snapshot.type("all")

4. 重复环境

  • 在另一个renv激活的环境中,通过复制上述的lock.file文件进行相同R包环境的重新搭建。
1
renv::restore()