Objetivos
Queremos hacer un paquete (i.e. un conjunto de funciones, datos y documentación de R). El paquete debe ser accesible desde internet de la manera más eficiente posible. Se deben seguir las mejores prácticas de la comunidad, incluir los datos a utilizar, ejemplos , etc
Crear un repositorio Git
Lo primero que tenemos que hacer es crear un repositorio GIT. Hay muchos tutoriales ahí afuera para hacer repositorios. Usa el google.
Supongamos pues, que tenemos uno ya hecho. En mi caso, hice un fork de CARBayes (Duncan Lee) y lo puse en mi repositorio público en Github (https://github.com/molgor/CARBayeSDM.git )
Fijensé como esta la estructura de los archivos.

Paquetes necesarios
install.packages("devtools") library("devtools") install.packages("roxygen2") library("roxygen2")
Devtools permite instalar paquetes desde repositorios GIT además de otras utilidades para desarrolladores. Roxygen es una librería crear documentación en R. Su nombre viene de la popular applicación Doxygen para crear documentación.
Inicializar la estructura
Podemos utilizar la función ‘create_package(Nombre_de_paquete) ‘ para crear una estructura de directorios.
setwd('ruta del repositorio') create_package('mi_paquete')
La estructura quedará de la siguiente manera :
- R (Carpeta donde se guardará el código de R)
- man (Donde se guardará la documentación)
- DESCRIPTION (archivo Readme que contiene la descripción del paquete)
- NAMESPACE (configuración de las funciones definidas por el paquete)
Escribir función con documentación
Vamos a escribir las funciones dentro de la carpeta R. Aquí definiremos las funciones pero primero pondremos la documentación (descripción de cada función al comienzo del archivo). Ve el siguiente ejemplo. El archivo se llama: *MyTestingFunction.R* [ Disculpa por escribirla en inglés, ya quedará en ustedes traducirla] .
#' An example for writing a function in R using Roxygen (e.g. a variant of Doxygen for #' R) #' Well, this function is for writing stuff, I suppose that I need to write here the #' pourpose of the function. #' @param something Something to put #' @keywords Tests, examples, many #' @export #' @examples #' test_function() test_function <- function(something=TRUE) { if(something==TRUE) { c = 'Something is True' return(c) } else { c = 'Something is different from TRUE' return(c) } }
Compilar documentación e instalar
Para compilar la documentación basta con ejecutar:
document()
Para instalar todo:
setwd("..") install("mi_paquete")
Usando repositorio en Github
Si se opta por esta opción se puede instalar directamente usando la función:
install_github('mi_paquete','usuario_de_github')
Listo! A desarrollar
Ahora podemos desarrollar paquetes de R, subirlos a github y compartirlos con todos nuestros colegas.
Colabora y no seas culer@!
Este post está basado en el ejemplo de Hillary Parker .