Включение скриптов bash в пакет R? - PullRequest
5 голосов
/ 23 февраля 2011

Фон

Я пишу пакет R для поддержки воспроизводимых исследований. На этом этапе рабочий процесс в основном поддерживается скриптами bash, и я могу выполнить анализ, отправив одну команду, например ./runscript.sh. Я использую bash для следующего:

  1. манипулирование файлами tar, rsync, 'переименование'
  2. запуск файлов bash локально и через ssh
  3. выполнение сценариев R с использованием R --vanilla, которые в свою очередь вызывают функции R
  4. найти и заменить текст в файлах, используя sed
  5. отправка работ через qsub

Мне кажется, что было бы намного эффективнее (чище и проще) выполнить весь рабочий процесс из функции R или сценария R. Я неравнодушен к R, так как я более знаком с ним и в основном работаю в Emacs ESS.

Вопросы

  1. Стоит ли инкапсулировать все эти варианты использования bash в R с использованием функций system и files?

  2. Существуют ли другие пакеты R, которые я еще не нашел, которые могут быть полезны для этого?

Примечания

Следуя ответу Al3xa, я понимаю, что важно отметить, что снижение скорости при использовании, например,. Версии tar и gsub в bash для файлов 1000-2000, вероятно, будут меньше, чем текущие шаги ограничения скорости в рабочем процессе: вычисления по JAGS (~ 10-20 минут) и FORTRAN (> 4 часа)

Ответы [ 2 ]

1 голос
/ 23 февраля 2011

Я большой поклонник использования R в качестве вашей "интегрированной" среды против сценариев bash. Я перевожу все свои скрипты bash и ruby ​​в Rscript, так как мне нужно внести в них изменения.

Есть только несколько причин, по которым не стоит переходить к R, которые приходят на ум. Я имею в виду в основном использование Rscript для достижения этой цели

1) Скорость, которая из моих испытаний оказывает умеренное влияние в любой ситуации, с которой я столкнулся, и будет тривиальной по сравнению с упомянутыми вами временами.

2) Переносимость, поскольку пути к Rscript и т. Д. Могут быть разными в разных системах. У меня не было проблем с написанием вещей на OS X и переносом их на сервер Linux, но я мог сломаться на Windows.

Преимущества в моей книге:

1) Мне гораздо легче писать. Мне не нужно переключаться между небольшими идиосинкразиями с такими вещами, как условные выражения и циклы.

2) Больше прощать. Я не могу описать, сколько времени я потратил, пытаясь заставить сценарии bash работать, потому что у меня случайно было место, где мне не следовало бы. В этом отношении R намного лучше (да, конечно, мы все должны точно следовать соглашениям в R, но я бы предпочел, чтобы это не останавливало меня часами, если я этого не сделаю).

3) Я лучше работаю. Для tar файла это не имеет значения, но я считаю, что я лучше работаю с текстом в R по сравнению с awk/sed, например.

Re: пакеты, которые полезны - насколько мне известно, этого не существует, но я бы хотел, чтобы версия make, основанная на синтаксисе R. make, была одной из самых негибких (вкладки против пробелы? действительно?) - Я бы хотел написать альтернативу на основе R. Когда-нибудь я буду ...

1 голос
/ 23 февраля 2011

Ну, есть такие функции, как tar, gsub и т. Д. В любом случае, я думаю, вы готовы создать кроссплатформенное решение.Вы должны предпочесть bash ради скорости и использовать R только для R-специфических функций.Я не считаю целесообразным заключать все системные команды в system и / или file.* ... это было бы намного медленнее ... Если вы используете Linux, я советую littler над Rscript интерфейс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...