使R安装自包含/独立于用户

SFu*_*n28 1 r shared-libraries

我试图让R忽略c:\ users \ name \ documents并完全独立/可移植

这是我的目录结构:

.../R/R-2.1.2.2/...
.../R/r_user/
.../R/libs_site/
Run Code Online (Sandbox Code Playgroud)

我更新了Rprofile.site如下:

# Set the working directory
setwd( file.path( R.home() , ".." , "r_user" ) )

# set the home directory
Sys.setenv(HOME=file.path( R.home() , ".." , "r_user" )  )

# Set the site library folder
.Library.site = file.path( R.home() , ".." , "libs_site" )
Run Code Online (Sandbox Code Playgroud)

当R启动时,我运行.libPaths(),但仍然看到c:/ users / ...

因此,也许R不是按照上面的Sys.setenv更新?解决方案?

Pat*_*ckT 5

以我的经验,创建一个名为Renviron.site的文件并不能在我的所有Windows计算机上正常工作,而命名同一个文件。不知道为什么。因此,如果您对上述建议有困难,请尝试使用.Renviron作为名称。

请不要犹豫,批评我的建议,因为当我描述对我有用的东西时,可能会有我不知道的困难。

以我的经验,以下工作有效:

Windows和Linux平台:

设置R路径

找出默认路径:.libPaths()

临时设置路径(在R脚本中)

.libPaths( "F:/Rlib" )
Run Code Online (Sandbox Code Playgroud)

其中F可能是与USB驱动器相关的字母。

查询路径(Windows和Linux):

Sys.getenv('R_LIBS_USER')
Sys.getenv('R_LIBS')
Sys.getenv('R_USER')
Sys.getenv('R_DOC_DIR')
Sys.getenv('HOME')
Run Code Online (Sandbox Code Playgroud)

也尝试:

normalizePath("~")
Run Code Online (Sandbox Code Playgroud)

也尝试:

getwd()
setwd(dir)
Run Code Online (Sandbox Code Playgroud)

getwd返回表示R进程当前工作目录的绝对文件路径

setwd(dir)用于将工作目录设置为dir。

Windows(经过7x64测试)

创建一个名为.Renviron的环境文件,将其放置在工作目录或主目录中:

"C:/Users/username/Documents"
Run Code Online (Sandbox Code Playgroud)

一些用户报告说,.Renviron文件需要位于“ c:/ users / username /”中。如果不确定将其放置在何处,请保存桌面历史记录,然后查看.Rhistory文件的位置。然后,将您的.Renviron文件放在同一位置。保存历史savehistory()

# Windows .Renviron file:
R_LIBS_USER="C:/R/library"
R_USER="C:/R"
R_DOC_DIR="C:/R"
HOME="C:"
Run Code Online (Sandbox Code Playgroud)

设置全局PATH我的电脑/属性/高级系统设置/环境变量->用户变量->路径->编辑c:\ R; c:\ R \ library;

Linux(在kUbuntu 12.10上测试)

创建一个名为Renviron.site的环境文件,并将其放在以下位置:

/etc/R/
Run Code Online (Sandbox Code Playgroud)

查询路径以检查系统是否正在读取Renviron.site文件。

# Linux Renviron.site file:
R_LIBS_USER="~/R/library"
R_USER="~/R"
R_DOC_DIR="~/R" 
#HOME="/home" # may not be needed
Run Code Online (Sandbox Code Playgroud)

备注:afaik从底部到顶部读取文件,因此在底部定义了HOME。在我的设置中,〜已正确分配给/ home /,因此无论如何我都省略了最后一行。

如果使用RStudio,则可能还需要在RStudio程序目录中添加一个rsession.conf文件。以下对我有用:

# Windows 7:
r-libs-user="C:/R/library"
# Kubuntu 12:
# r-libs-user=~/R/%p-library/%v
Run Code Online (Sandbox Code Playgroud)