English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Primero, instale el paquete "Rserve" en R.
Si usa RGui interfaz visual, en la barra de menú de programa - El programa de instalación puede completar este paso. Si usa puramente R Console, puede usar las siguientes órdenes:
install.packages("Rserve", repos = "https://mirrors.ustc.edu.cn/CRAN/)
Después de que Reserve se instale, habrá un directorio library en la raíz de R, donde puede encontrar Rserve/directorio java, y luego descubrirá que hay dos archivos en el directorio: REngine.jar y Rserve.jar.
Estos dos archivos son las bibliotecas de interfaz de R en Java.
Atención:Java no puede lograr el uso independiente de las funciones de R sin el sistema R!
Ingrese R, ingrese el siguiente código para iniciar Rserve:
library("Rserve") Rserve()
Si se inicia con éxito, R mostrará la ruta de Rserve.
Primero, importe los dos jars que se importaron recientemente.
Después de importar, nos familiarizamos con una clase clave: RConnection, que se puede usar para conectarse a Rserve.
Ahora estamos utilizando R en Java para realizar una operación de matriz inversa:
import org.rosuda.REngine.Rserve.*; public class Main { public static void main(String[] args) { RConnection rcon = null; try { // Establecer la conexión con Rserve rcon = new RConnection("127.0.0.1"); // eval() función se utiliza para hacer que R ejecutar R enunciado // Aquí se ha creado un m1 matriz rcon.eval("m1 = matrix(c(1, 2, 3, 4), 2, 2, byrow = TRUE") // la función solve() en R para buscar m1 matriz inversa // y devolver el resultado, la función asDoubleMatrix puede convertir los datos en // Java double dos dimensiones array para representar la matriz double[][] m1 = rcon.eval("solve(m1).asDoubleMatrix(); // Mostrar el contenido de la matriz for (int i = 0; i < m1.length; i++) { for (int j = 0; j < m1[0].length; j++) System.out.print(m1[i][j] + "\t"); System.out.println(); } } catch (Exception e) { e.printStackTrace(); } finally { if (rcon != null) rcon.close(); } } }
Resultado de la ejecución:
-1.9999999999999998 1.0 1.4999999999999998 -0.49999999999999994
Claramente, el resultado es correcto, pero después de todo es un número de coma flotante, por lo que la salida puede no ser tan agradable, pero no afecta el uso de los datos.