2011-01-21 2 views
9

Я разработал большую библиотеку функций в R. На данный момент я просто загружаю («источник») функции в начале всех моих скриптов.R пакет и время выполнения

Я видел, что могу создавать пакеты.

Мой вопрос: будет ли это улучшать время выполнения моих функций? (путем преобразования кода интерпретатора в машинный язык?)

Что делает создание пакета? Создает ли он двоичные файлы?

Благодаря Фреда

ответ

14

Существует не R компилятор еще Упаковка ваш R код не улучшит его время выполнения в широком масштабе. Он также не будет создавать для вас двоичные файлы - вам нужно создать их из пакета tarball (или получить CRAN или аналогичный для их создания). В настоящее время байтовый компилятор для пакетов R и R теперь по умолчанию байт компилируется. Улучшения скорости в целом скромны - не ожидайте скорости C-like.

Упаковочный код R точно делает именно это; он упаковывает код R, код для компиляции (C Fortran и т. д.), справочные страницы, документацию, тесты и т. д. в стандартный формат, который может быть распространен среди пользователей и установлен/построен на нескольких архитектурах.

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

Если вы не намерены распространять свой код, тогда есть несколько преимуществ упаковки только для вашего собственного использования, но если вы делаете упаковку и пишете документацию и примеры/тесты, вы можете быть уведомлены об изменениях в коде пакета которые прерывают примеры или приводят к сбою тестов. Таким образом, вы лучше осведомлены о надежности своего кода, даже если это только вы его используете!

+3

Создание пакета - это весело, и оно «заставляет» вас документировать ваши функции (если вы еще этого не сделали). Документацию легко получить с помощью help(), которая является одной из основных вещей, которые мне нравятся в R - помощь никогда не за горами. –

+5

Пакет обеспечивает прочную основу для управления R-кодом. Я всегда находил их полезными, когда набор функций растет за пределы одного или двух источников R файлов - даже в ситуациях личного использования. – Sharpie

+1

Ознакомьтесь с [R-forge] (https://r-forge.r-project.org/) для автоматического создания вашего пакета для разных ОС. – csgillespie

Смежные вопросы