当我尝试使用 setwd() 将工作目录从使用绝对路径(从 C:/examplename/Dropbox/Files)更改为相对路径(~/Dropbox/Files)时,我得到“无法更改工作目录”
我正在使用在共享 Dropbox 中工作的代码,并且具有使用相对路径的语法,例如:
setwd(paste0("~/Dropbox/Files/", site))
但是,当我在计算机上运行此代码时,出现找不到文件路径的错误。我认为这是因为我的工作目录看起来像:
getwd()
但是,当我去更改它时,出现以下错误:
> setwd("~/Dropbox/Files")
Error in setwd("~/Dropbox/Files") : cannot change working directory
我已经检查过我使用的拼写是否正确,并且我已经尝试过 file.path
> setwd(file.path("~","Dropbox","Files"))
Error in setwd(file.path("~", "Dropbox", "Files")) :
cannot change working directory
我很好奇是否有人知道为什么我不能改变它?如果重要的话,编写代码的人使用的是 Mac,而我有一台 PC。
就我而言,我在与 Dropbox 共享文件共享的不同计算机上工作。它似乎与您的设置类似,只是您有不同的用户。这是我用于多个项目的脚本:
# Initialize environment and load data --------------
run_location <- "work" # work | laptop | tablet
dropbox_path <- switch(
run_location,
"work" = "C:/Dropbox/",
"laptop" = "S:/Dropbox/",
"tablet" = "C:/Dropbox/"
)
defaultRFolder <- paste0(dropbox_path, "Travail/R/para")
wd <- paste0(dropbox_path, "Travail/Research/project_path")
setwd(wd)
我需要更改的是开始时 run_location 的值,然后脚本将根据我的位置运行。这是可能适合您的修改:
run_location <- "windows_user" # mac_user | windows_user
dropbox_path <- switch(
run_location,
"mac_user" = "~/Dropbox/",
"windows_user" = "C:/examplename/Dropbox/"
)
wd <- paste0(dropbox_path, "Files")
setwd(wd)
所以,在你的电脑上,你应该设置
run_location <- "windows_user" # mac_user | windows_user
而你的同事应该设置
run_location <- "mac_user" # mac_user | windows_user
他们的。这是您需要更改的唯一内容,以便文件在您各自的计算机上运行。