Как заставить R распознавать ваш рабочий каталог как его рабочий каталог?

Я использую R под Windows на нескольких машинах.

Я знаю, что вы можете установить рабочий каталог из скрипта R, как это

setwd("C:/Documents and Settings/username/My Documents/x/y/z")

... но тогда это нарушает переносимость скрипта. Также раздражает необходимость отменять все косые черты (поскольку Windows дает вам обратную косую черту)

Есть ли способ запустить R в определенном рабочем каталоге, чтобы вам не нужно было делать это на уровне сценария?

10 ответов

Решение

Вы должны скопировать ярлык в R (файл R.lnk) в нужную папку. Затем в "Свойствах" (правая кнопка мыши -> последний вариант) удалите что-либо в поле "Начать с..." на второй вкладке ("Ярлык"?). Если вы запустите R с этим ярлыком, то рабочий каталог будет тем, где ярлык находится.

У меня нет английской версии Windows, поэтому я не уверен насчет имен полей, но их легко найти.

Подобные вопросы были в R-windows-faq:

2.5 Как мне его запустить?

2.10 Как мне сохранить рабочие пространства для разных проектов в разных каталогах?

2.14 Что такое HOME и рабочие каталоги?

В 2.14 упоминается, что

Рабочий каталог - это каталог, из которого был запущен Rgui или Rterm, если только не был использован ярлык, если он указан в поле "Start in" свойств ярлыка.

Вы можете использовать переменную среды. Это может работать с Sys.getenv() а также Sys.setenv(), Например:

> Sys.setenv(R_TEST="testit")
> Sys.getenv("R_TEST")
  R_TEST 
"testit" 

Если вы отправили переменную в своем скрипте, вы сможете получить к ней доступ изнутри, а затем вызвать setwd() на этом выходе.

Сохраните вашу рабочую область в нужном каталоге, а затем просто откройте рабочую область из проводника Windows.

Я поставил следующую строку перед моими сценариями, и она позволяет мне работать на моих компьютерах.

setwd(path.expand("~/path/to/working/directory/") )

где ~ is = в ваш домашний каталог.

Sys.setenv(HOME = "path") или же Sys.setenv(R_USER = "path") оба могут установить домашний каталог.

В моем случае я работаю над несколькими окнами, каждый из которых имеет довольно разные структуры каталогов, но, правильно установив домашний каталог, я могу синхронизировать код между компьютерами и правильно запускать их на каждом, так как там, где я запускаю, мои R-проекты имеют схожие структуры каталогов,

Просто деталь: вместо обратной косой черты, как вы говорите, просто добавьте еще одну обратную косую черту. Два из этих \\ работают так же, как один из этих /. Это делает это по крайней мере немного легче.

Если вы используете Emacs/ESS, это не проблема. Я перехожу в каталог, где находится мой R-скрипт, открываю его и запускаю процесс R ESS. Консоль R выскакивает с текущим каталогом в качестве рабочего каталога R.

Если вы не конвертировали в Emacs/ESS, я рекомендую это. (Хотя, чтобы предотвратить войну пламенем, я также отмечаю, что есть аналогичные варианты для пользователей Vi.)

Надеюсь, это поможет.

Для Ubuntu:
Вставьте следующую команду в ваш .Rprofile файл (обычно в вашем домашнем каталоге):

setwd(Sys.getenv("PWD"))

Теперь вашим рабочим каталогом по умолчанию будет каталог, из которого вы запустили R. Имейте в виду, что вы также можете настроить рабочие пространства по умолчанию в разных каталогах, сохранив изображение рабочего пространства как .RData везде, где вы планируете запустить R (источники запуска .Rprofile перед поиском .Rdata в cwd).

Чтобы установить рабочий каталог R, например текущий каталог скрипта R, над которым я работаю, я всегда использую комбинацию команд getwd() а также setwd(), как это:

path <- getwd() setwd(path)

или же

setwd(getwd())

Если вы хотите узнать больше об этом, см. Эту статью.

Ура,

[] 'S

Чтобы установить рабочий каталог в R Studio: См. Подробную презентацию со снимками экрана здесь.

  1. Использование setwd(): пользователям Windows нужно будет заменить обратную косую черту '' на прямую косую черту '/' или двойную обратную косую черту '\'. Первое можно сделать с помощью поиска и замены (ярлык: Ctrl+F)
  2. Другой вариант: перейдите в Сеанс -> установить рабочий каталог -> выберите рабочий каталог и просмотрите папку, которую вы хотите установить в качестве рабочего каталога, нажмите открыть
  3. Самый быстрый метод (мой любимый): используйте ярлык «Ctr + Shift + H» (в системе Windows), просмотрите папку, которую вы хотите установить в качестве рабочего каталога, нажмите «Открыть».

Чтобы установить постоянный рабочий каталог (когда он не находится в проекте) в R Studio: обратитесь к моему короткому видео о том же: https://youtu.be/hMjzO4bAi70

Перейдите в Инструменты -> Глобальные параметры -> R Общие [Базовые] -> Рабочий каталог по умолчанию (если не в проекте), просмотрите папку, которую вы хотите установить в качестве рабочего каталога, нажмите «Применить» и «ОК». '

Однако эффективный и лучший способ организовать вашу работу - это создавать проекты и использовать контроль версий.

Поместите ярлык для R GUI в нужный каталог. Щелкните правой кнопкой мыши и посмотрите на свойства ярлыка. Удалите запись для "Начать с" и нажмите "ОК". Когда вы запускаете R gui из этого ярлыка, каталогом по умолчанию будет папка, из которой вы запустили. Скопируйте / вставьте этот ярлык куда угодно.

Другие вопросы по тегам