Наши партнеры

UnixForum





Библиотека сайта 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.