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/