我正在尝试让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进行更新?解决方案?
发布于 2011-04-20 08:56:37
添加以下代码会起到作用:
.Library.site = file.path( R.home() , ".." , "site-library" )
.libPaths(.Library.site)发布于 2013-02-09 23:07:43
在我的经验中,创建一个名为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文件放在相同的位置。保存历史记录保存历史记录()
# Windows .Renviron file:
R_LIBS_USER="C:/R/library"
R_USER="C:/R"
R_DOC_DIR="C:/R"
HOME="C:"设置全局路径我的电脑/属性/高级系统设置/环境变量-->用户变量-->路径-->编辑c:\R;c:\R\library;
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发布于 2011-04-20 04:51:38
你可以在[your R installation path]\etc中用几行代码创建文件Renviron.site
HOME="${R_HOME}\..\r_user"
R_LIBS_SITE="${R_HOME}\..\libs_site"它设置您的第二和第三个设置。First可能会被setwd(Sys.getenv("HOME"))取代。
https://stackoverflow.com/questions/5721942
复制相似问题