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

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

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

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

... но тогда это нарушает переносимость скрипта. Это также раздражает, чтобы отменить все косые черты (так как Windows дает вам обратные косые черты)

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

9 ответов


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

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

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

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

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

2.14 что такое домашний и рабочий каталоги?

в 2.14 указано, что

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


вы можете использовать переменную окружающей среды. Это может работать с 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") можно установить домашний каталог.

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


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

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

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


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


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

setwd(Sys.getenv("PWD"))

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


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

path <- getwd() setwd(path)

или

setwd(getwd())

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

спасибо,

[] ' s


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