1) Если вы ищете способ найти путь к запущенному в данный момент сценарию, см.
Rscript: определить путь к исполняемому сценарию
2) Другой подход заключается в том, чтобы требовать, чтобы пользователи добавили опцию предварительно назначенного имени в свой файл .Rprofile
.Тогда скрипт может setwd
к этому.Привлекательным аспектом этой системы является то, что со временем можно забыть, где находятся различные проекты, и с помощью этой системы можно просто взглянуть на файл .Rprofile
, чтобы напомнить о себе.Например, для проекта А каждый, кто запускает проект, запишет это в свой файл .Rprofile
options(projectA = "...whatever...")
, а затем скрипт будет начинаться с:
proj <- getOption("projectA")
if (!is.null(proj)) setwd(proj) else stop("Set option 'projectA' to its directory")
Один из вариантов этогопредположить текущий каталог, если projectA не определено.Хотя это может показаться более гибким, я лично считаю, что возможность документирования приведенного выше кода является большим преимуществом.
proj <- getOption("projectA")
if (!is.null(proj)) setwd(proj) else cat("Using", getwd(), "\n")