“如何阻止RStudio创建空的”;R";文件夹在"/“家”;每次启动时的目录

“如何阻止RStudio创建空的”;R";文件夹在"/“家”;每次启动时的目录,r,rstudio,startup,R,Rstudio,Startup,在设置了默认工作目录以及RStudio选项中的第一个(也是唯一一个)项目的路径之后,我想知道为什么RStudio每次启动时都在我的“/home”目录中创建一个名为“R”的空文件夹 是否有任何文件我可以删除/编辑(最终创建)以停止这种恼人的行为?如果有,它位于哪里 系统:LinuxMintV。19.3 软件:RStudio v。1.3.959/R版本3.4.4 提前感谢您的提示。是的,您可以通过一组环境变量阻止创建R目录 然而,正确设置这些并不是一件小事。第一个问题是,许多R软件包对安装的R版本很

在设置了默认工作目录以及RStudio选项中的第一个(也是唯一一个)项目的路径之后,我想知道为什么RStudio每次启动时都在我的“/home”目录中创建一个名为“R”的空文件夹

是否有任何文件我可以删除/编辑(最终创建)以停止这种恼人的行为?如果有,它位于哪里

系统:LinuxMintV。19.3 软件:RStudio v。1.3.959/R版本3.4.4


提前感谢您的提示。

是的,您可以通过一组环境变量阻止创建
R
目录

然而,正确设置这些并不是一件小事。第一个问题是,许多R软件包对安装的R版本很敏感。如果升级R并尝试加载现有包,它可能会中断。因此,R包库路径应该特定于R版本

在集群上,另一个问题是运行在不同体系结构上的不同集群节点可能读取相同的库路径;这种情况很少见,但确实发生了。在这种情况下,编译的R包可能需要根据体系结构而有所不同

因此,一般来说,R库路径需要特定于R版本和系统架构

接下来,即使您配置了一个替代路径,如果它不存在,R也会默默地忽略它。因此,请确保手动创建已配置的目录

最后,将此配置放在何处?一个选项是将其放入,其路径可以使用环境变量
R\u ENVIRON\u USER
指定-默认为
$HOME/.Renviron
。但这并不理想,因为这意味着用户在调用R时不能临时覆盖此设置:此文件中的变量覆盖调用环境

相反,我建议在用户配置文件中设置此选项(例如,
$HOME/.profile
)。但是,当您使用桌面启动器启动RStudio时,此文件将不会被读取,因此请确保。1

总之,将以下内容添加到您的
$HOME/.profile

export R\u LIBS\u USER=${XDG\u DATA\u HOME:-$HOME/.local/share}/R/%p-library/%v
并确保此目录存在:重新生成
~/.profile
(在当前shell中启动新shell是不够的),然后执行

mkdir-p“$(Rscript-e'cat(Sys.getenv(“R_LIBS_USER”))”
上面使用的是,这是Linux系统上的事实标准。2路径使用占位符
%p
%v
。R将分别用系统平台和R版本(以
major.minor
的形式)填写

如果要使用自定义R配置文件(“用户配置文件”)和/或R环境文件,我建议以相同的方式设置它们的位置,方法是配置
R\u profile\u user
R\u ENVIRON\u user
(因为它们的默认位置再次位于用户主目录中):


1我没有Linux桌面系统,但我相信编辑以下内容的
Env
条目就可以了:

Exec=env R_LIBS_USER=${XDG_DATA_HOME:-$HOME/.local/share}/R/%p-library/%v /path/to/rstudio
2其他系统需要不同的处理。在macOS上,库位置的规范设置为
$HOME/library/Application Support/R/library/%v
。但是,在macOS上为GUI应用程序设置环境变量是非常困难的


在Windows上,规范位置是
%LOCALAPPDATA%/R/library/%v
。要设置此变量,请在PowerShell中使用,或者在使用
cmd.exe
时使用。

我刚刚在ubuntu-16.04的R-3.5.3上测试过,它不会自动创建
~/R/
目录。我的猜测是:(1)它是RStudio的一部分(对不起,我没有在我的ubuntu系统上安装它),或者(2)在你的
~/.Rprofile
中有东西在做它。(我的赌注是#1。)你的
.libpath()
看起来像什么?当您直接运行R而不是通过RStudio运行R时,它会做同样的事情吗?您使用如此旧版本的R有什么原因吗?是
R
还是
.R
?@r2evans事实上,创建空“R”的是RStudio,而从命令行启动的R-3.4.4则没有。但是作为R的新手,我觉得通过命令行管理它对我来说不是一个有效的选择。我理解你的沮丧,我不知道如何阻止RStudio创建那个目录。您可能会考虑这一点:在R中,当您安装一个未包含在BaseR中的包时,作为用户,您没有权限将包安装到系统库(通常是代码> /UR/LB/R或<代码> /Ur/Studio/LIb/R)。允许您将软件包安装到R中的唯一方法是拥有一个可由您写入的目录。遍历
~/R/version
目录。如果您正在学习R,我几乎可以保证您会想安装一两个软件包。顺便说一句,此设置不是默认设置,但需要1页A4的密集解释,这一事实有点令人恼火。
Exec=env R_LIBS_USER=${XDG_DATA_HOME:-$HOME/.local/share}/R/%p-library/%v /path/to/rstudio