miércoles, 7 de enero de 2015

Corriendo R en la plataforma Java con Renjin

Como ven estoy a full con R, supongamos que queremos hacer una aplicación que realice análisis estadístico, y tengamos mucho trabajo por ese lado, pero por el otro se quiere que la aplicación sea web y tenga web services, ect.

Por un lado esta bueno utilizar R para la parte estadística pero por el otro sería bueno usar java donde tenemos todo ya más armado. Por lo tanto podemos usar Renjin que es un lenguaje que corre en la plataforma Java y que es muy similar a R.

Lo que nos permite hacer rengin es ejecutar R desde java y ver los resultados, y a la vez nos resuelve las diferencia de tipos y otros detalles. Por ejemplo:

engine.eval("df <- data.frame(x=1:10, y=(1:10)+rnorm(n=10))");
engine.eval("print(df)");
engine.eval("print(lm(y ~ x, df))");

Si nuestro proyecto java utiliza maven podemos utilizar lo agregando las siguientes dependencias:

<dependencies>
  <dependency>
    <groupId>org.renjin</groupId>
    <artifactId>renjin-script-engine</artifactId>
    <version>0.7.0-RC7</version>
  </dependency>
</dependencies>
<repositories>
  <repository>
    <id>bedatadriven</id>
    <name>bedatadriven public repo</name>
    <url>http://nexus.bedatadriven.com/content/groups/public/</url>
  </repository>
</repositories>

Dejo link: http://www.renjin.org/