renv能否用于创建具有特定版本R的虚拟环境?

renv能否用于创建具有特定版本R的虚拟环境?,r,rstudio,virtual-environment,renv,R,Rstudio,Virtual Environment,Renv,在以前使用R3.6.3之后,我最近安装了R4.0。为了管理R存储库,我使用Rstudio(目前在Windows 10机器上为1.2.5042)。升级到R4.0后,我在几个月前打开了一个项目,并意识到Rstudio现在默认使用较新版本的R(及其库文件夹)。运行renv::restore()时,renv会尝试为较新版本的R重新安装.lock文件中的所有库,我看不到任何方法可以指定我希望继续使用R 3.6.3及其关联库 来自python的背景,我假设renv将创建一个虚拟环境,隔离解释器和项目使用的库

在以前使用R3.6.3之后,我最近安装了R4.0。为了管理R存储库,我使用Rstudio(目前在Windows 10机器上为1.2.5042)。升级到R4.0后,我在几个月前打开了一个项目,并意识到Rstudio现在默认使用较新版本的R(及其库文件夹)。运行
renv::restore()
时,
renv
会尝试为较新版本的R重新安装.lock文件中的所有库,我看不到任何方法可以指定我希望继续使用R 3.6.3及其关联库

来自python的背景,我假设
renv
将创建一个虚拟环境,隔离解释器和项目使用的库(类似于anaconda环境的创建方式)。然而,在查看文档并进行了一些搜索之后,我没有发现任何关于隔离特定版本R的参考。然而,我发现Rstudio默认使用最新版本的R,这不一定是我想要的行为

我曾尝试使用anaconda管理R环境。然而,Anaconda依赖于它自己较小的R包存储库,我需要的许多库都来自于在GitHub上存放代码的研究人员


有没有办法创建一个R环境,在这个环境中我可以隔离R库和R本身的版本?或者,关于如何使用具有R/Rstudio的环境,我可能缺少一些东西?

您是正确的,
renv
只管理已安装的R软件包,而不是R解释器本身

根据您使用RStudio的方式,您仍然可以通过设置
RStudio\u WHICH\R
环境变量来“伪造”这一点。例如:

export RSTUDIO_WHICH_R=/path/to/R
rstudio
将告诉RStudio“绑定”到由环境变量
RStudio\u指定的R版本


值得一提的是,将项目绑定到特定版本的R是RStudio专业版的一个特点;但是,它在开源版本中不可用。有关更多详细信息,请参阅。

您可以更改Rstudio在“全局选项”中打开的R的版本。这样行吗?这里有一个关于这个的讨论:谢谢你指导我进行这个讨论,菲尔。这正好反映了我的问题。从提供的答案来看,renv似乎无法管理不同版本的R。他们列出了一些解决方法,包括使用shell脚本、类似docker的R包(rocker)和其他一些外部选项。我可以改变全局选项,但只要安装一个Rstudio,就很难在项目之间切换,也很难共享。如果还有其他选择的话,我很想听听。