如何让RStudio编译PDF时使用项目packrat库保障可复现性?
当然可以做到!Packrat的核心目标就是锁定项目依赖、保证可复现性,要让RStudio点击Compile PDF时启动的新R会话自动使用项目的packrat库,你可以按下面的步骤操作:
第一步:确保项目已初始化并激活Packrat
先确认你的项目已经用packrat::init()完成初始化,打开RStudio项目时,Packrat通常会自动激活。如果没激活,手动在控制台运行packrat::on()就能切换到项目的packrat环境。第二步:配置项目的.Rprofile自动加载Packrat
在项目根目录下创建或修改.Rprofile文件,添加以下代码:if (requireNamespace("packrat", quietly = TRUE)) { packrat::on() }这样一来,任何启动这个项目的R会话(包括Compile PDF时新建的会话)都会自动激活packrat库,优先使用项目内的依赖包,而不是你的个人用户库。
第三步:检查RStudio的编译设置
打开RStudio的「Tools > Global Options > Sweave」面板,确认「Weave Rnw files using」选择的是Knitr。如果你的RStudio版本较新,也可以在「Tools > Project Options > Build Tools」里,确保编译相关的选项关联了当前项目环境。验证是否生效
可以在你的.Rnw文件里添加一段测试代码:<<echo=TRUE>>= # 查看当前使用的包库路径 .libPaths() # 查看knitr的版本 packageVersion("knitr") @点击Compile PDF生成PDF后,检查输出的内容,确认包路径指向项目的
packrat/lib目录,knitr版本也是你项目packrat里锁定的版本,就说明配置成功了。
内容的提问来源于stack exchange,提问作者J.P. Le Cavalier

