Библиотека сайта rus-linux.net
Сборка собственных пакетов в GNU R
Оригинал: Building basic packages in GNU R
Автор: Renata Rendek
Дата публикации: февраль 2013 года
Перевод: А. Кривошей
Дата перевода: май 2013 г.
Предыдущая статья о GNU R: Установка и использование пакетов в GNU R,
1. Введение
Если вы хотите поделиться своим кодом и данными с другими людьми, или просто хотите упаковать свой код, для вас может быть поезна возможность сборки собственных пакетов в GNU R. В этой статье мы разберем процесс создания базового пакета в R. Хотя мы и не будем затрагивать различные тонкости, однако данное руководство поможет вам начать работу в этом направлении.
2. Создание структуры пакетов
Каждый пакет состоит из набора инструкций. Кроме того, часто в пакет включают шаблоны данных. Предлагаю рассмотреть простой пример. Ниже мы определяем четыре объекта R: две функции - div() и pow(), и два набора данных в форме векторов data1 и data2.
> div<-function(a,b) a/b > pow<-function(a,b) a^b > data1<-c(1,4) > data2<-c(7,2)
Структуру (шаблон) пакета в R легко можно получить с помощью функции package.skeleton(), как показано ниже. В качестве аргументов мы используем список ранее определенных объектов R, а также имя создаваемого пакета.
> package.skeleton(list=c("div","pow","data1","data2"), name="exampleRpackage") Creating directories ... Creating DESCRIPTION ... Creating NAMESPACE ... Creating Read-and-delete-me ... Saving functions and data ... Making help files ... Done. Further steps are described in './exampleRpackage/Read-and-delete-me'.
В результате будет создан набор директорий и файлов для пакетв. Все соответствующие файлы и директории будут расположены в директории с именем exampleRpackage.
Векторы с данными расположены в директории ./exampleRpackage/data/, в то время как определения функции находятся в ./exampleRpackage/R/. В директории ./exampleRpackage/man/ расположены шаблоны руководств по соответствующим определенным объектам, а также по пакету в целом. Также создается файл DESCRIPTION. Он содержит всю важную информацию о пакете, например версию, дату создания и т.д.:
Package: exampleRpackage Type: Package Title: What the package does (short line) Version: 1.0 Date: 2013-02-15 Author: Who wrote it Maintainer: Who to complain to < yourfault@somewhere.net > Description: More about what it does (maybe more than one line) License: What license is it under?
3. Проверка и сборка пакета
После создания базового пакета его необходимо проверить и создать. Это можно сделать в командной строке Linux с помощью команд R CMD check и R CMD build:
$ R CMD check exampleRpackage $ R CMD build exampleRpackage
Команда build возвращает архив exampleRpackage_1.0.tar.gz, готовый для установки.
4. Заключение
Создание и сборка пакета в R может оказаться намного более сложной, чем приведенный здесь простой пример. Существует ряд вопросов и соглашений, которые необходимо учитывать при создании пакета. Это руководство поможет вам при сборке пакетов для собственного использования. Чтобы собирать пакеты и размещать их в CRAN, необходимо более подробно изучать соглашения в R. В качестве полного руководства по созданию пакетов в R может служить Writing R Extensions.