使R安装独立/与用户无关

时间:2011-04-19 19:58:29

标签: r shared-libraries

我正在尝试让R忽略c:\ users \ name \ documents并完全自包含/可移植

这是我的目录结构:

.../R/R-2.1.2.2/...
.../R/r_user/
.../R/libs_site/

我更新了我的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" )

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

所以也许R没有根据上面的Sys.setenv进行更新?溶液

4 个答案:

答案 0 :(得分:5)

根据我的经验,创建一个名为Renviron.site的文件并不适用于我的所有Windows机器,而命名相同的文件.Renviron却无处不在。不知道为什么。因此,如果您对上述建议有困难,请尝试使用.Renviron获取名称。

请毫不犹豫地批评我的建议,因为虽然我在描述对我有用的东西,但我可能会遇到困难。

根据我的经验,以下方法有效:

Windows和Linux平台:

设置R路径

找出默认路径:     .libPaths()

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

.libPaths( "F:/Rlib" )

其中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')

另请尝试:

normalizePath("~")

另请尝试:

getwd()
setwd(dir)

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

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

Windows(已测试:7x64)

创建名为.Renviron的环境文件 将它放在工作目录或主目录中:

"C:/Users/username/Documents"

有些用户报告说.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:"

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

Linux(在kUbuntu 12.10上测试)

创建名为Renviron.site的环境文件 把它放在:

/etc/R/

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

# Linux Renviron.site file:
R_LIBS_USER="~/R/library"
R_USER="~/R"
R_DOC_DIR="~/R" 
#HOME="/home" # may not be needed

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

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

# Windows 7:
r-libs-user="C:/R/library"
# Kubuntu 12:
# r-libs-user=~/R/%p-library/%v

答案 1 :(得分:4)

您可以在Renviron.site中使用行

创建文件[your R installation path]\etc
HOME="${R_HOME}\..\r_user"
R_LIBS_SITE="${R_HOME}\..\libs_site"

设置第二和第三个设置。首先可以用setwd(Sys.getenv("HOME"))替换。

答案 2 :(得分:3)

我在 [您的R安装路径] \ etc 中使用了 Rprofile.site 文件,并添加了以下行以使 C:/ R / library < / em>每次启动R时我的默认库位置:

# set a site library
 .Library.site <- file.path("C:/R/library")
 .libPaths(.Library.site)

我在这里尝试了其他答案,但没有一个在Windows 7 64上使用R 2.13.1。

答案 3 :(得分:1)

添加此功能可以解决问题:

.Library.site = file.path( R.home() , ".." , "site-library" )
.libPaths(.Library.site)