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

xvw2m8pv  于 2023-01-10  发布在  其他
关注(0)|答案(3)|浏览(135)

我们三个人使用相同的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
rbpvctlc

rbpvctlc1#

与其让用户设置目录,不如将所有目录都构建到脚本中,然后检查哪个用户正在使用该脚本。

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]给出了当前登录的用户。

t0ybt7op

t0ybt7op2#

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"))
uyto3xhc

uyto3xhc3#

我在Dropbox的多个用户中找到了一个简单的方法。
假设您使用以下路径将共享数据存储在Dropbox中:“C:/Users/thoma/Dropbox/Data/Datensatz.xlsx”,而您的R脚本位于“C:/Users/thoma/Dropbox/Code/data.R”,从该文件夹打开您的代码,RStudio会自动将Code设置为当前工作目录,然后您可以在脚本中将工作目录更改为Data。

setwd("../../../../Data/") ## set folder 'Data' as the working directory
Datensatz <- read_excel("./Datensatz.xlsx") ## use a relative path from the working directory

相关问题