1. Estructura de un paquete


Vemos la estructura básica de un paquete.

Para construir un paquete de R deberás colocar de una forma específica las funciones que tienes escritas en R. Por lo tanto, partimos de que el código ya está completo. Vemos entonces la manera en la que crear toda la estructura de carpetas y archivos necesaria para construir el paquete.

En primer lugar la carpeta principal debera llamarse como el paquete. Dentro de dicha carpeta se alojaran los archivos principales (DESCRIPTION, LICENSE, COPYRIGHT, NAMESPACE, etc) y las carpetas que contendrán el resto de archivos:

  • R. La carpeta denominada R es el núcleo de nuestra estructa ya que contiene todos los archivos .R con el código de las funciones correspondientes. Recomendamos que cada función se encuentre en un archivo cuyo nombre sea “nombre_de_la_funcion.R“. A no ser que haya ciertas funciones auxiliares que por los motivos que sea no se deseen hacer disponibles para el usuario y entonces pueden estar dentro del archivo de otra funcion o incluso dentro de la propia funcion que las usa (esto último lo más recomendable si sólo van a ser usadas por una función ya que así evitas tener que crear un fichero de ayuda para ellas).
  • man. Esta carpeta contendrá todos los ficheros de ayuda. Estos ficheros comprondran el llamado “Reference manual” del paquete. Además cada uno de ellos debe corresponder a una de las funciones denominando dicho fichero: “nombre_de_la_funcion.Rd“. Lo más recomendable para crear estos ficheros es tomar una plantilla e irla completando con la información correspondiente a cada función y los ejemplos pertinentes para que su uso sea lo más sencillo posible. Toda la información detallada sobre cada uno de los apartados que este tipo de ficheros debe tener se encuentra recogida en el capítulo 2 del manual “Writing R extensions”. Todas las funciones, así como todos los conjuntos de datos, todos los objetos S3 y S4 y sus métodos deben tener su correspondiente ayuda.
  • data. En esta carpeta se encontrarán todos los ficheros de datos que deseemos incorporar con el paquete. Su extensión será “.RData” o “.rda“.
  • inst. Aquí tendremos todos aquellos ficheros que deseemos que se instalen con el paquete. Tan sólo se incluirá en la instalación lo mencionado hasta ahora y los archivos principales DESCRIPTION y LICENSE , todo lo demás no, a menos que esté en esta carpeta. Por ejemplo es interesante incluir un archivo CITATION que tendrá la manera de citar el paquete. Se puede ver como construirlo en el punto 1.10 del manual “Writing R extensions“. En caso de no incluirlo se generará automáticamente con la información que hay en el archivo DESCRIPTION. En esta carpeta también se puede incluir documentación que formará parte de la vignette. En ese caso se deberá incluir en una carpeta llamada doc. Desde la versión 14.1.1 se ha abierto la posibilidad de tener una carpeta en el nivel principal que se llame directamente vignette y tenga todos los documentos pertenecientes a las vignettes. Cualquiera de los dos alojamientos son validos.

En cuanto a los archivos principales existen algunos que son imprescindibles como:

  • DESCRIPTION: En este archivo se recogerá toda la información del paquete, una especie de DNI. Deberán incluirse la versión, los autores, el título, quien hará el mantenimiento, una breve descripción y varias cosas más. En el manual R extensions vienen detalladas las opciones en el aparatado 1.1.1.
  • NAMESPACE: Aquí se deberán especificar todos aquellos objetos que serán importados o exportados del paquete. Para que no quede ningún cabo suelto es recomendable seguir el apartado 1.6 del manual R extensions.
  • LICENSE: Una copia de la licencia deberá incluirse con objeto de informar al usuario.

Existen otros archivos opcionales tales como el COPYRIGHT o un archivo llamado NEWS donde se pueden incluir los cambios que se realizan de una versión a otra.

También existe una carpeta que deberá ser incluida en caso de tener código en otro lenguaje. Se trata de la carpeta src donde se incluirán los archivos correspondientes con el código fuente, es decir en caso de tener código en C aquellos archivos con extensión “.c“. Las dlls (que son el código compilado y por lo tanto el que se ejecutará) las generan automáticamente las funciones que crean el paquete a partir de estos directorios.

 

package.skeleton(name="fred",list=ls())

Ejecutado desde R para crear en el directorio de trabajo un paquete con todas las funciones que se tienen cargadas, habrá que editarlo luego.

 

 

Anuncios
  1. rparatodos
    10/04/2012 en 6:12 pm

    Muchas gracias por tu apunte Emilio.

  2. 27/03/2012 en 9:10 am

    El fichero LICENSE se puede obviar si utilizamos la misma licencia que R.
    Saludos y ánimo con el blog!

  1. No trackbacks yet.

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: