【问题标题】:Global paths conversions from WIndows to MACOS (R language example)从 WIndows 到 MACOS 的全局路径转换(R 语言示例)
【发布时间】:2021-10-22 13:43:46
【问题描述】:

我试图找到一些已经存在的解决方案 - 到目前为止没有成功。

问题

有一些项目,都是由一群人在R运行的,每个团队成员都使用Windows作为主要操作系统。

几乎每个脚本文件一开始都使用以下命令

setwd("Z://00-00-00/path/to/project")

这里使用的是Z://00-00-00/路径下的一些公共磁盘空间。因为我在 MAC OS 上工作,所以我的路径是 /common-drive/path/to/project 问题是:

有没有办法在某种文件中包含命令/脚本,例如~/.bashrc 或者可能是一些与R 相关的设置,这些设置会将Windows 之类的绝对文件路径转换为MAC OS 的路径-比如他们检测到的时候?

我认为应该运行的是:

path.to.be.used <- "Z://00-00-00/path/to/project"
str_replace(path.to.be.used, "Z://00-00-00/", "/common-drive/")

但是,所有脚本的路径都直接硬编码在setwd 中,因此我无法手动更改每个文件。这就是为什么我试图找出一些将这些路径转换为“静默模式”的解决方法。

有人知道怎么做吗?如果应该转换路径,有什么方法可以控制系统或 R-studio 级别?

感谢您的时间和帮助!

【问题讨论】:

  • 根据您组织项目的方式,here::here() 可能有用
  • 建议一般发给avoid setwd()。它只是不能让事情重现。 here 包建议是一个很好的建议,或者既然您提到了 RStudio,请使用 RStudio 项目。否则不清楚你是如何运行这些脚本的,但你需要运行一些代码来改变默认的setwd() 命令并注入你自己的。
  • 谢谢大家!我会尝试说服他们改变项目的政策。 @MrFlick 我使用 RStudio 来运行这些脚本,所以我认为也许有某种黑客可以告诉 RStudio 在路径之间进行转换。我认为到目前为止 user2554330 是做到这一点的唯一方法,我需要记住每次在调整任何脚本之前都要重载命令。

标签: r windows macos path


【解决方案1】:

正如其他人在 cmets 中所说,您应该说服您的同事不要这样做。但是,这通常很困难,所以这里有一个 hack 解决方案(@MrFlick 提到):

setwd <- function(dir) {
  newdir <- sub("Z://00-00-00/", "/common-drive/", dir)
  cat("Requested ", dir, ", using ", newdir, "\n")
  base::setwd(newdir)
}

【讨论】:

  • 谢谢,我就是这么想的。您知道打开 RStudio 时默认运行它的任何方法吗?类似于 on-init 脚本?
  • 如果您将该定义放在.Rprofile 中,那么 R 将在启动时运行它。 R 首先在当前目录中查找它,然后在用户的主目录中查找。
猜你喜欢
  • 2020-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-04
  • 1970-01-01
  • 1970-01-01
  • 2014-10-22
相关资源
最近更新 更多