6

下午好!

我是一所大学的系统管理员,我负责为计算机实验室设置图像。R 是默认映像的一部分,在很长一段时间内,我们只有一次登录所有实验室用户,允许我们设置一次默认目录,然后跨多个系统进行映像。这种情况已经改变,我们现在让所有用户都使用个性化登录方式登录。这让我想到了我在使用 R 时遇到的问题,以及我为什么要求助于你。

您会看到,正如你们大多数人可能知道的那样,当第一次运行 R 时,会打开一个对话框,提示您输入保存包等的位置。点击“确定”,它是用户文件,但点击其他任何东西,它就在你放置的任何地方。问题是,我们已经相当严格地锁定了系统,并且除了用户的个人目录之外,我们不喜欢访问任何东西。

我的问题是 - 有没有办法在第一次运行时通过免提脚本或只是某个地方的设置强制 R 默认为系统上的用户目录用于包存储?这将阻止我必须授予所有用户对 R 目录的读取和写入权限,并且由于他们实际上没有选择更改它的选择,因此搞砸的可能性会更小。如果我必须继续在该文件夹中授予权限,我可以,但我宁愿不这样做。

谢谢!

4

3 回答 3

1

我现在无法对此进行测试,但我相信您可以将类似内容添加Sys.setenv(R_LIBS_USER=path.expand('~\R\library'))到 R 等目录中的 Rprofile.site 文件中。

于 2012-11-30T20:17:40.720 回答
1

编辑您的 .Renviron 文件以设置默认路径:

# .Renviron file
R_LIBS = '~/.R/library'
于 2012-11-30T20:32:11.267 回答
0

'...默认到系统上的用户目录进行包存储...'

另一种方式,特别是如果您想为员工/学生设置不同的设置,那就是使用组策略在登录时为选定的机器/用户设置环境变量。

例如,相当于...

SETX "R_LIBS" "\\fileserver2/department_shared/public/r/packages"

您可以通过启动 R 并尝试轻松检查这是否有效

Sys.getenv("R_LIBS")

此外,此命令还可以显示安装了哪些软件包:

rownames(installed.packages())
于 2014-06-17T10:06:53.447 回答