Как насчет использования системных команд и команд оболочки?С Windows One, я думаю, что когда вы открываете скрипт в RStudio, он устанавливает текущий каталог оболочки в каталог скрипта.Возможно, вам придется добавить cd C: \ например или любой другой диск, который вы хотите найти (например, shell ('dir C: \\ * имя_файла / s', intern = TRUE) - \\ для экранирования escape-символа).Будет работать только для файлов с уникальными именами, если вы не укажете дополнительные подкаталоги (для Linux я начал поиск с /).В любом случае, если вы знаете, как найти что-то в оболочке, это обеспечивает компоновку, чтобы найти это в R и вернуть каталог.Должно работать, независимо от того, используете ли вы скрипт или запускаете скрипт, но я не полностью изучил потенциальные ошибки.
#Get operating system
OS<-Sys.info()
win<-length(grep("Windows",OS))
lin<-length(grep("Linux",OS))
#Find path of data directory
#Linux Bash Commands
if(lin==1){
file_path<-system("find / -name 'file_name'", intern = TRUE)
data_directory<-gsub('/file_name',"",file_path)
}
#Windows Command Prompt Commands
if(win==1){
file_path<-shell('dir file_name /s', intern = TRUE)
file_path<-file_path[4]
file_path<-gsub(" Directory of ","",file_path)
filepath<-gsub("\\\\","/",file_path)
data_directory<-file_path
}
#Change working directory to location of data and sources
setwd(data_directory)