要求在 R Studio 中设置工作目录 - 多个用户使用同一个 R 脚本

Posted

技术标签:

【中文标题】要求在 R Studio 中设置工作目录 - 多个用户使用同一个 R 脚本【英文标题】:Ask to set the working directory in R Studio - multiple users working with the same R script 【发布时间】:2018-12-09 21:32:32 【问题描述】:

我们三个人使用相同的 R 脚本在 R Studio 中开展我们的研究项目。这会通过设置工作目录带来一些问题,因为文件和数据表都保存在本地每个人的 Dropbox 文件夹中。因此,我们使用相同的脚本和相同的数据,但在我的情况下,工作目录的路径例如像“C:/Users/thoma/Dropbox/...”。

我可以在代码开头通过 setwd("directory") 设置 wd,但这仅适用于我。

我的问题:是否有命令询问我在哪里设置 wd,每个用户都可以设置自己的工作目录,例如 askforwd()

每个文件夹中的数据都是同步的,因此这是每次不同用户运行代码时都必须更改的唯一路径。

感谢您的帮助!

这是我们的代码示例:

setwd("C:/Users/thoma/Dropbox/") #sets the directory

Datensatz <- read_excel("Datensatz.xlsx") #reads the synced data in the folder

【问题讨论】:

getwd() 获取当前工作目录。 【参考方案1】:

不要让用户设置目录,只需将它们全部构建到脚本中并检查哪个用户正在使用该脚本。

Paths = c("C://user/Fred/", "C://user/Wilma", "C://Some/other/path")
names(Paths) = c("Fred", "Wilma", "Guest")
setwd(Paths[Sys.info()[7]])

当然Sys.info()[7]给的是当前登录的用户。

【讨论】:

这非常有用。我认为这也会导致灵魂提神,但是当我运行setwd(Paths[Sys.info()[7]]) 时,它会显示missing value is invalid。所以有些东西不见了,我找不到它是什么。你能解释一下Sys.info()[7]中的“7”是什么意思吗?谢谢! 好的,现在它可以工作了,我只是把用户叫错了!非常感谢 - 这真是太棒了,它适用于每个用户! 抱歉,我应该警告您检查Sys.info 返回用户名的方式。我机器上的所有大写字母。我很高兴它有所帮助。【参考方案2】:

Dropbox提供了一个json文件,可以用来设置目录

library(magrittr)
library(jsonlite)

DropboxInfo <- 
  if (Sys.getenv("OS") == "Windows_NT") 
    file.path(Sys.getenv("LOCALAPPDATA"), "Dropbox", "info.json")
   else 
    "~/.dropbox/info.json"
  

Path2Dropbox <- 
  jsonlite::fromJSON(DropboxInfo) %>%
  use_series("business") %>%  # or 'personal' if applicable
  use_series("path")

Datensatz <- read_excel(file.path(Path2Dropbox, "Datensatz.xlsx"))

【讨论】:

当我使用此代码时,它显示'错误:path 不存在:'C:\Users\thoma\Dropbox/Datensatz.xlsx'' 是否有机会更改子文件夹? 'C:/Users/thoma/Dropbox/FOM/Empirisches Projekt/Gruppenarbeit/' 在您的 OP 中,您使用该路径作为示例。这不正确吗? 'C:/Users/thoma/Dropbox/FOM/Empirisches Projekt/Gruppenarbeit/' 是我需要找到 Datensatz.xlsx 的路径。那么我可以以任何方式设置此路径吗? read_excel(file.path(Path2Dropbox, "FOM/Empirisches Projekt/Datensatz.xlsx")) 再次感谢。这也是一种自动设置目录的好方法,但对于多个用户来说不是很有用,因为最后你必须设置一个专门使用的路径。

以上是关于要求在 R Studio 中设置工作目录 - 多个用户使用同一个 R 脚本的主要内容,如果未能解决你的问题,请参考以下文章

在 Android Studio 的 build.gradle 中设置的 Android R/11 的 API 级别是啥?

在Android Studio中设置多个警报

Android Studio中设置一个按钮的不同点击触发事件

如何在 Visual Studio Code 中设置我的工作区文件夹?

如何在实时服务器中设置多个站点?

Flutter Tar:无法在 android studio IOS 中设置默认语言环境