我正在尝试让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进行更新?溶液
答案 0 :(得分:5)
根据我的经验,创建一个名为Renviron.site的文件并不适用于我的所有Windows机器,而命名相同的文件.Renviron却无处不在。不知道为什么。因此,如果您对上述建议有困难,请尝试使用.Renviron获取名称。
请毫不犹豫地批评我的建议,因为虽然我在描述对我有用的东西,但我可能会遇到困难。
根据我的经验,以下方法有效:
设置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。
创建名为.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 \文库;
创建名为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)