【问题标题】:Setting R environmental variable in Tortoise SVN在 Tortoise SVN 中设置 R 环境变量
【发布时间】:2017-02-28 23:31:48
【问题描述】:

我在一个名为 some_functions.R 的文件中有一组函数,并保存在 C:\blah1\blah2\Rcodes\some_functions.R 的 SVN 目录中。我有几个使用此代码文件的 Rproject。假设目录 C:\blah1\blah2\Rprojects\project1 中有一个 R 项目。我可以使用硬编码路径来引用文件并且它可以工作。

source("C:/blah1/blah2/Rcodes/some_functions.R")'  

但我想将路径设置为环境变量。

查看How to unfold user and environment variable in R language?setting the home directory in windows R 我在RProfile.site 文件中添加以下行

Sys.setenv(R_CODE_PATH = "C:/blah1/blah2/Rcodes")

在project1.Rnw文件中

source("R_CODE_PATH/some_functions.R")

但项目文件无法读取 some_functions.R 文件。我尝试使用 %R_CODE_PATH% 没有任何运气。

不确定我在这里缺少什么。任何帮助深表感谢。

【问题讨论】:

  • 考虑在 RStudio 或 RTVS(Visual Studio 的 R 工具)中使用项目。这会将R工作目录设置为项目目录,因此您不必自己乱搞环境。
  • @Hong Ooi 3,我正在使用 RStudio 项目,但问题是在项目文件中链接外部代码文件集合。由于代码文件在多个项目中使用,我不想将其复制到每个项目目录中,而是将其保存在一个位置并仅在一个文件中更新/更改。

标签: r svn environment-variables


【解决方案1】:

您使用Sys.getenv() 检索环境变量。试试:

r_code_path <- Sys.getenv("R_CODE_PATH")

那么,例如:

source(paste(r_code_path, "some_functions.R", sep = "/"))

我会使用.Renviron 配置文件来定义环境变量。将它放在 R 命令 Sys.getenv("HOME") 返回的任何目录中,并包含如下行:

R_CODE_PATH=C:/blah1/blah2/Rcodes

【讨论】:

  • 谢谢,成功了!我一次性使用 source(paste(Sys.getenv("R_CODE_PATH"),"some_funcitons.R", sep="/"))
  • 我之前也尝试过 .Renviron 方法,但没有成功。在第二种方法中,它会覆盖已经创建的环境路径吗?啊……我把 .Renviron 文件放在了错误的目录中,我的错。
  • 我不确定优先级和覆盖;如果可行,我会选择一个系统并坚持下去。
猜你喜欢
  • 2011-04-22
  • 1970-01-01
  • 2019-12-24
  • 2018-07-13
  • 1970-01-01
  • 2011-03-25
  • 2015-02-01
  • 2017-01-01
  • 2017-10-30
相关资源
最近更新 更多