Sie sind auf Seite 1von 12

Creación de paquetes R con

Rstudio
Angelo Santana & Carmen Nieves Hernández,
Departamento de Matemáticas, ULPGC

Requisitos previos
Crear paquetes de R con Rstudio es muy sencillo. Obviamente necesitamos tener instalado
Rstudio, y además instalar los paquetes Roxygen2 (que permite generar muy fácilmente la
documentación de ayuda de nuestro paquete) y devtools(herramientas de desarrollo de
paquetes).

Pasos para la creación de un paquete


1 Crear el proyecto.
En Rstudio seleccionamos File –> New Project. Se nos abrirá la ventana siguiente:
NuevoProyecto
Seleccionamos New Directory. Ello hará que Rstudio cree un directorio donde
almacenaremos los archivos relacionados con nuestro proyecto. Seguidamente Rstudio nos
pregunta por el tipo de proyecto:
TipoProyecto
Seleccionamos R Package y llegamos a la siguiente ventana:
creaPaquete
En la casilla Package name: especificamos el nombre de nuestro proyecto, por ejemplo
_miPrimeraLibreria__; en la casilla Create package based on source files podemos añadir
(picando en el botón Add) los archivos .R que contengan nuestras funciones, si los hemos
generado previamente (no es estrictamente necesario añadirlos ahora, se pueden añadir
posteriormente). Por último indicamos el directorio raiz del que colgará el subdirectorio en que
estarán contenidos los archivos de nuestro proyecto. Resulta conveniente disponer de una
carpeta específica para paquetes de R. Rstudio creará un subdirectorio dentro de dicha carpeta
con el nombre de nuestro nuevo paquete.
Aquellos usuarios avanzados que quieran llevar a cabo un control de versiones del paquete
pueden picar en Create a git repository (requiere conocimientos de git)
Al pinchar en el botón Create Project se creará un directorio en la ubicación indicada con la
estructura necesaria para que R pueda construir la librería:
estructura
En primer lugar picamos en el archivo DESCRIPTION (en la ventana inferior derecha), y
completamos la información relativa al nombre del paquete, autor, descripción, etc:
descripcion

2. Crear las funciones que componen el paquete


A continuación pinchamos en el icono de la carpeta denominada R en la ventana inferior
derecha. Esta es la carpeta donde deben ir los archivos de script que contienen el código de
nuestras funciones. Por defecto, salvo que hayamos indicado algún archivo en el paso anterior,
en esta carpeta aparecerá un único archivo (vacío) con el nombre del paquete. Podemos abrir
ese archivo y escribir directamente en él nuestras funciones, o podemos ir añadiendo archivos
nuevos a esta carpeta. Suele ser buena práctica tener un único archivo por función ya que ello
facilita las tareas de mantenimiento (actualización de la función, documentación, etc).
Para crear un archivo con una función vamos a File –> New File –> R Script y creamos un
nuevo archivo. A modo de ejemplo, vamos a crear una función llamada normalHist() que
dibuje un histograma y le superponga una curva normal. El código de la función es el
siguiente:

normalHist=function(x,dens=FALSE,...){
m=mean(x)
stdev=sd(x)
xn=seq(min(x),max(x),length=200)
yn=dnorm(xn,m,stdev)
maxy=1.1*max(yn)
hist(x, ylim=c(0,maxy),freq=FALSE,...)
lines(xn,yn,col="red",lwd=2)
if (dens) lines(density(x),col="blue",lty=2,lwd=2)
}

Copiamos este código en el archivo, que quedará de la forma:

funcion1
Para que R pueda generar automáticamente el archivo de ayuda para esta función incluimos
las siguientes lineas antes del comienzo de la función:

#' @title Dibuja el histograma de una variable superponiendo la densidad


normal ajustada
#' @description Función que dibuja el histograma de una variable x, super
poniendo la densidad normal
#' ajustada. Si el usuario lo desea puede superponer también un estimador
de núcleo de la densidad.
#' @param x vector de datos cuyo histograma se va a calcular
#' @param dens valor lógico: TRUE=Superponer estimador de núcleo de la de
nsidad
#' @return el histograma con la densidad normal superpuesta
#' @export normalHist
#' @examples
#' u=rnorm(1000,100,12)
#' normalHist(u);
#' normalHist(u,dens=TRUE)
#' normalHist(u,dens=TRUE,col="lightcyan")
#'

En ellas describimos qué argumentos recibe la función, qué valor o valores devuelve, algunos
ejemplos …. El paquete roxygen2se encargará de construir los archivos de ayuda a partir de
esta información.
El archivo con nuestra función debe quedar, por tanto, de la forma:

funcionCompleta
Ahora la guardamos (File –> Save as) en un archivo R, preferentemente con el mismo
nombre de la función. No es estrictamente necesario, pero nos facilitará posteriormente poder
localizar la función si la queremos modificar. Por defecto, la función se guarda en la
carpeta R del directorio de nuestro paquete.

3. Construir nuestra librería


Para construir nuestro paquete vamos a la pestaña Build (ventana superior derecha). Antes
que nada, comprobamos nuestra configuración, y la ajustamos en caso necesario. Para ello
picamos en el icono more de dicha ventana:

configureBuild
y a continuación en Configure Build Tools. Se nos abre una ventana como la siguiente:
configureRoxygen
y picamos en la casilla Generate documentation with Roxygen. Además picamos el
botón Configure…, y se nos abre el menú siguiente:
configRox
Seleccionamos las casillas NAMESPACE file y Build & Reload, además de las opciones
marcadas por defecto (Rd files, R CMD check y Source and binary packages build).

Una vez ajustada la configuración, pinchamos en Build & Reload:

BuildReload
¡Y ya está! Hemos creado nuestra primera librería. A partir de ahora, figurará en la lista de
paquetes en Rstudio, y podemos cargarla (y usar las funciones que contiene), simplemente
picando en su nombre, o ejecutando library(miPrimeraLibreria).

Más información
• Writing an R package from scratch
• Package basics
• Developing Packages with RStudio

© 2016 Angelo Santana, Carmen N. Hernández, Departamento de Matemáticas ULPGC

Das könnte Ihnen auch gefallen