OpenCPU

Aplicaciones web con R

Para R-Hispano Madrid / 9 Junio 2016

Índice

¿Qué es openCPU?

Funcionando en local

Funcionando en la web

Ejemplo: Modeler

openCPU


Qué necesitamos saber

  • R
  • Paquetizar proyectos en R
  • HTML
  • Javascript
  • JQuery*

Cómo funciona

Una aplicación web = Un paquete de R.


Las sesiones

    Una sesión = "Un objeto de R"

    
    session.getKey()
    session.getLoc()
    session.getObject()
    session.getConsole()
    session.getStdout()
    							

Tipos de llamada

  • Llamadas sencillas (Remote Procedure Call)
  • 
    ocpu.rpc( fun, [, args ] [, complete ] )
    
    ocpu.rpc("testhomoced", {"miST":miSession}, function(jsondata){...
    							
  • Llamadas con devolución de sesiones.
  • 
    ocpu.call( fun, [, args ] [, callback ] )
    
    ocpu.call("autoArima", {"miST":miSession}, function(session6){...
    							
  • Llamadas con devoluciones gráficas.
  • 
    $("#mydiv").rplot( fun, [, args ] [, callback ])
    
    $("#grafico632").rplot("showmodel", {mimodelo:session6, id:"312"});
    							

EL paquete responde


showmodel <- function(mimodelo, id, ...){
	hist(arima.errors(mimodelo), freq = FALSE, main="Residuos")
    	lines(density(arima.errors(mimodelo)), lty=2, lwd=2);
}
						

Lo vemos

Opciones de trabajar

  • Trabajar el local, "single user"
  • Utilizar nuestro propio servidor OpenCPU
  • Trabajar en pseudo-local con R-Studio Server
  • Utilizar el servidor abierto de OpenCPU
    https://public.opencpu.org/ocpu + GitHub

Primeros pasos


En local

Aprendiendo



Instalación en R



install.packages("opencpu")
library(opencpu)
					

Creo el paquete



package.skeleton(name = "modeler", path="C:/...")
					

Estructura


Cargar la libreria



library(opencpu)
opencpu$browse("/library/modeler/www")
					

Lo vemos

En la web

Producción


Instalación en Ubuntu



# Requires Ubuntu 14.04 (Trusty) or 16.04 (Xenial)
sudo add-apt-repository -y ppa:opencpu/opencpu-1.6
sudo apt-get update 
sudo apt-get upgrade

sudo apt-get install r-base

# Installs OpenCPU server
sudo apt-get install -y opencpu
# Done! Open http://yourhost/ocpu in your browser
					

Funciona?

Pruebas iniciales: http://medible.es/ocpu/test/

Desde la consola


install.packages("devtools")
library(devtools)
install.packages("forecast")
library(forecast)
# Otras librerías que necesite nuestra aplicación.
install.packages("../modeler_0.4.tar.gz", repos = NULL, type = "source") 
library(modeler)
					

Veo que tengo las librerías que necesito en: http://medible.es/ocpu/library/

Ya podemos ver nuestra aplicación en: http://medible.es/ocpu/library/modeler/www

Lo vemos

Modeler

Modelizador web de series temporales según metolodogía Box-Jenkins


Qué tiene de especial?

  1. Aplicación web
  2. Mejora la usabilidad
  3. Modelizar en paralelo
  4. Modelo sugerido por R
  5. Comparación de resultados

Vamos a verlo...

Medible.es