在具有不同目录结构的多个用户之间进行协作时,如何在 R 中使用 source()?

How do I use source() in R when collaborating across multiple users with different directory structures?

我正在与其他一些用户合作开展各种 R 项目。为了尽可能多地重复使用代码,我们创建了一个 "stdlib.R" 文件,其中包含跨多个项目使用的许多函数。

我们之前可以访问网络驱动器,因此代码可以通过调用来利用公共路径:

source("f:/code/stdlib.R")

但现在我们正在成长,我不想依赖网络驱动器的存在(或与此相关的任何硬编码路径)。如何创建使用本地化路径的代码?像这样:

source("%localusrpath%/stdlib.R")

每个用户都可以定义 %localusrpath% 对他们意味着什么。

对我来说可能是 C:/temp,对另一个人来说可能是 C:/users/user123/documents.

只要他们设置好 "environment variable",它就会为他们工作。

一种解决方案是仅使用相对路径:

source("./stdlib.R")

但是如果用户更改了他们的工作目录,这将失败:

swd("c:/anything_else")

如何通过操作系统设置用户特定的环境变量,然后如何retrieve/make使用该变量来连接路径?或者这整件事是个坏主意?

为什么不在 Github 上将 stdlib.R 文件托管在你们都拥有管理员权限的存储库中?然后您可以使用 devtools::source_url 指向 Github 存储库来获取文件。

这样您就不必担心每个人在其本地计算机上都拥有最新版本。

我在这个问题中找到了我要找的东西:setting the home directory in windows R

我问这个问题很糟糕,主要是因为我不确定我需要什么。但最终我希望代码可以跨多台计算机移植,每台计算机都有一个 Github 帐户。因此,通过在每台计算机上设置 R_USER 系统环境,我可以获取独立于最终用户目录结构的文件。只要每个最终用户将此行放入 Rprofile.site 文件中即可。

Sys.setenv(R_USER="/my/desired/path/to/tilde")
source("~/stdlib.R")