Исходя из предложений Seb от gsk3, вот идея:
- комбинация имени пользователя (логин) и IP или имени компьютера может использоваться для выбора правильного каталога.
Это приводит к чему-то вроде:
setwd (switch (paste (Sys.info () [c ("user", "nodename")], collapse="."),
user.laptop = "~/Messungen",
user2.server = "~/Projekte/Projekt/",
))
Итак, существует автоматическое решение, которое
- работает с
source
- работает с
Sweave
даже работает для интерактивных сеансов, где команды отправляются построчно
комбинация user
и nodename
, конечно, должна быть конкретной
- пути нужно редактировать вручную.
Улучшения приветствуются!
Обновление:
Габор Гротендик ответил на следующий вопрос на r-help сегодня:
this.dir <- dirname(parent.frame(2)$ofile)
setwd(this.dir)
, который будет работать для source
.
Еще одно обновление: сейчас я делаю большую часть работы по анализу данных в RStudio. Проекты RStudio в основном решают проблему: RStudio меняет рабочий каталог на корневой каталог проекта каждый раз, когда я переключаюсь между проектами.
Поэтому я могу расположить каталог проекта как можно ниже в моем дереве каталогов (и студенты также могут поместить свою копию куда угодно) и синхронизировать файлы данных и сценарии / .Rnw
s с помощью контроля версий (мы используем частный сервер git). Файлы проекта RStudio хранятся вне контроля версий, т.е. .gitignore
содержит .Rproj.user
.
Очевидно, что в проекте, структура каталогов должна быть синхронизирована.