Está en la página 1de 2

Desarrollo de Paquetes Configuración ( " DESCRIPTION)

El archivo " DESCRIPTION describe tu trabajo y configura


con devtools Hoja de Referencia como tu paquete va a funcionar con otros paquetes. Package: mipaquete
Title: Título del paquete

% Debes tener un archivo DESCRIPTION


Version: 0.1.0
Authors@R: person("Hadley", "Wickham", email =

% Añade
"hadley@me.com", role = c("aut", "cre"))
Estructura de Paquetes los paquetes de los cuales el tuyo depende con
devtools::use_package()
Description: Lo que el paquete hace (en un párrafo)
Depends: R (>= 3.1.0)
Un paquete es una costumbre, un convenio informal, Añade un paquete al campo Imports (o el campo License: GPL-2 Imports: paquetes que tu paquete
Suggests si el segundo argumento es “Suggests”). LazyData: true
para organizar archivos en carpetas. necesita tener para funcionar. R los
Imports: instalará cuando instalas tu paquete.
dplyr (>= 0.4.0),
Esta hoja muestra como trabajar con las 7 partes mas CC0 MIT GPL-2
ggvis (>= 0.2) Suggests: paquetes que no son
Licencia MIT aplica si tu Licencia GPL-2 aplica a tu
comunes de un paquete de R: Sin restricciones
código es compartido código y todo el código que Suggests: esenciales para el tuyo. Usuarios los
alguien incluye en el paquete pueden instalar manualmente, si
por otros. knitr (>= 0.1.0)
# Package si es compartido por otros. gustan, o no instalarlos.
" DESCRIPTION Configuración
$ R/ Escribe código Escribe código ( $ R/) Pruebas
Setup ( $ tests/)
( " DESCRIPTION)
$ tests/ Pruebas
$ man/ Documentación Todo el código R de tu paquete va a $ R/. Un paquete con The
Usa $ DESCRIPTION
" tests/ para guardar
file describes
pruebasyour
unitarias
work que
and te
sets
$ vignettes/ Enseña solamente una carpeta R/ directory es un paquete útil. informarán
up how your
enpackage
el caso de
willinterrupciones
work with other
enpackages.
tu código.
$ data/ Añade datos
" NAMESPACE Organiza
% Creadevtools::create("camino/a/nombre")
un nuevo proyecto de paquete con % You must
Añade unahave a DESCRIPTION
carpeta file testthat con
tests/ e importa
% Adddevtools::use_testthat()
El contenido de un paquete se puede guardar en disco como:
Crea una plantilla para desarrollar un paquete.
% devtools::use_package()
the packages
Configura that yours
el paquete relies
para usar
automatizadas con testthat
on with
pruebas
• fuente - una carpeta con subcarpetas como arriba
Addspruebas
a package tocontext(),
the Imports file (default) or
• paquete - un solo archivo comprimido (.tar.gz)
• binario - un solo archivo comprimido optimizado para un
% Guardo tu código en $ R/ como scripts (extensión .R) Escribe
Suggests fieldcon
% Guarda test(),
(if second argument isy expectativas
tus pruebas como archivos .R en tests/
"Suggests").

sistema operativo (SO) especifico


También se puede instalar en una librería R (cargado a memoria
Flujo de Trabajo
1. Modifica tu código.
% Imports
testthat/
Import packages that your package
must have to work. R will install
Suggests
Suggest packages that re not really
essential to yours. Users can install
durante una sesión de R) or archivado en linea en un repositorio. them when it installs your package. them manually, or not, as they like.
Usa las funciones abajo para mover de un estado al otro. 2. Carga tu código con uno de Flujo de Trabajo Prueba ejemplo
1. Modifica
Package:tu código o pruebas.
mypackage
En memoria

devtools::load_all()
Repositorio

Title: Title con


of uno
Package
Instalado

Re-carga todos los cambios guardado en $ R/ a 2. Prueba tu código de


Paquete

context("Arithmetic")
Binario

Version: 0.1.0
Fuente

memoria. devtools::test()
Authors@R: person("Hadley", "Wickham", email =
Ctrl/Cmd + Shift + L (abreviado de teclado) Corre todas las pruebas role test_that("Math
"hadley@me.com", = c("aut", "cre", works",
"cst")) {
install.packages() CRAN ○ guardadas en $
Description: What the package
tests/. expect_equal(1 + 1, 2)
does (one paragraph)
install.packages(type = CRAN Guarda todos los documentos y llama load_all(). Depends: R (>= 3.1.0) expect_equal(1 + 2, 3)
"source")
○ Ctrl/Cmd + Shift + T
License: GPL-2 expect_equal(1 + 3, 4)
○ ○ 3. Experimenta en la consola. (abreviado de teclado)
LazyData: true })
R CMD install ○ ○ 3. Repite hasta que todas las 

4. Repite. Imports:
○ ○ pruebas pasan (>= 0.4.0),
dplyr
devtools::install() ○ • Usa un estilo consistente con r-pkgs.had.co.nz/r.html#style. ggvis (>= 0.2)
expect_equal()
Suggests: es igual dentro de pequeño margen de tolerancia numerica?
devtools::build() ○ ○ • Haz clic en la función y aprieta F2 para abrir su definición.
expect_identical()
knitr (>= es exactamente
0.1.0) igual?
devtools::install_github( github ○ • Busca una función con Ctrl + . expect_match() coincide con caracteres específicos o expresion regular?
)devtools::load_all() ○ ○ expect_output() imprime salida especificada?
Build & Reload (RStudio) ○ ○ ○
Visita r-pkgs.had.co.nz expect_message() muestra mensaje espeficado?
library() ○ ○ expect_warning() muestra advertencia especificada?
Internet On disk library memory Aprende mas en http://r-pkgs.had.co.nz • devtools 1.6.1 • Actualizado: 1/15 expect_error() arroja el error especificado?
devtools::add_build_ignore("file") RStudio® es una marca registrada de of RStudio, Inc. • Todos los derechos reservados expect_is() salida hereda de una clase especifica?
info@rstudio.com • 844-448-1212 • rstudio.com
Añade archivos a .Rbuildignore, una lista de archivos que no se expect_false() devuelve FALSE?
incluirán al construir (build) el paquete. Traducido por Frans van Dunné • innovateonline.nl expect_true() devuelve TRUE?
RStudio® es una marca registrada de RStudio, Inc. • CC BY RStudio • info@rstudio.com • 844-448-1212 • rstudio.com Learn more at http://r-pkgs.had.co.nz • devtools 1.6.1 • Updated: 1/15
Traducido por Frans van Dunné • www.ixpantia.com
Documentación ( $ man/) Añade datos ( $ data/)
$ man/ contiene la documentación de tus funciones, y las páginas de ayuda para tu paquete. La carpeta $ data/ te permite incluir datos con tu
Usa comentarios roxygen para documentar cada paquete.
El paquete roxygen
% función a la par de su definición

% Documenta el nombre de cada conjunto de datos


roxygen te permite escribir documentación entre las lineas de
tu código en los archivos .R con una sintaxis abreviada. % Guarda datos en uno de las carpetas data/, R/
Sysdata.rda, inst/extdata.
exportado
• Añade documentación roxygen como lineas de comentario % Siempre usa LazyData: true en tu archivo DESCRIPTION.

% Incluye ejemplos ilustrativos para cada función comenzando con #’.


• Coloca la lineas de comentarios directamente encima del % Guarda como archivos .Rdata (sugerencia)

Flujo de Trabajo código que define el objeto documentado.


1. Añade comentarios roxygen a tus archivos .R • Coloca un etiqueta @ inmediatamente después de #’ devtools::use_data()
para definir una sección especifica de la documentación. Añade un objeto de datos a data/
2. Convierte comentarios roxygen en • Lineas in etiquetas serán usados para generar un titulo, (R/Sysdata.rda if internal = TRUE)
documentación usando uno de descripción y sección de detalles (en ese orden).
devtools::use_data_raw()
devtools::document() Añade un script de R para limpiar datos en data-
#' Suma dos números.
raw/. Incluye data-raw/ en .Rbuildignore.
Convierte comentarios roxygen a #'
archivos .Rd y los coloca en $ man/. #' @param x A numero.
#' @param y A numero. Guarda datos en
También ensambla NAMESPACE.
#' @return La suma de \code{x} y \code{y}. • data/ para hacerlos accesibles a usuarios del paquete.
#' @examples • R/sysdata.rda para mantener los datos internos, para uso por
Ctrl/Cmd + Shift + D (abreviación de teclado) #' suma(1, 1) tus funciones.
3. Abre páginas de ayuda con ? para tener una #' @export
suma <- function(x, y) {
• inst/extdata para dar acceso a datos crudos al cargar y
ejecutar ejemplos. Puedes acceder los datos con system.file().
vista previa de la documentación. x + y
}
4. Repite
Organiza ( " NAMESPACE)
Etiquetas roxygen comunes
Etiquetas de formato para .Rd El archivo " NAMESPACE te ayuda a crear un paquete
@aliases @inheritParams @seealso
\emph{} \code{\link{}} \dontrun{} auto-contenido: no interfiere con otros paquetes y
\strong{} \link{} \dontshow{} @concepts @keywords @format otros paquetes no interfieren con el.
\code{} \link[package]{} \donttest{} @describeIn @param @source data
\pkg{} \linkS4class{} Exporta funciones para usuarios colocando @export

\email{} \deqn{} \tabular{lcr}


@examples
@export
@rdname
@return
@include
@slot
% en sus comentarios roxygen.
S4 Importa objetos de otros paquetes con
\href{} \eqn{} \tab
\url{} \cr
@family @section @field RC % package::object (recomendado) o @import,
@importFrom, @importClassesFrom,
@importMethodsFrom (no siempre recomendado)
Enseña ( $ vignettes/)
$ vignettes/ contiene los documentos que enseñan a tus
Flujo de Trabajo
usuarios como resolver problemas reales con tus herramientas. --- 1. Modifica tu código o prueba.
title: “Titulo del Vignette"
author: “Autor del Vignette" 2. Documenta tu paquete (devtools::document())
% Crea una carpeta $ vignettes/ y una plantilla con
devtools::use_vignette()
date: "`r Sys.Date()`"
output: rmarkdown::html_vignette 3. Verifica NAMESPACE
Añade una plantilla de un vignette como vignettes/my- vignette: >
vignette.Rmd. %\VignetteIndexEntry{Titulo del Vignette} 4. Repite hasta que NAMESPACE es correcto
% Añade encabezado YAML a tus vignettes (ejemplo a la derecha) %\VignetteEngine{knitr::rmarkdown}
\usepackage[utf8]{inputenc}
Comparte tu paquete
% Escribe el cuerpo de tus vignettes en R Markdown
(rmarkdown.rstudio.com)
---
r-pkgs.had.co.nz/release.html
RStudio® es una marca registrada de RStudio, Inc. • CC BY RStudio • info@rstudio.com • 844-448-1212 • rstudio.com Aprende más en http://r-pkgs.had.co.nz • devtools 1.6.1 • Actualizado: 1/15
Traducido por Frans van Dunné • www.ixpantia.com

También podría gustarte