English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
먼저, R에서 "Rserve" 소프트웨어 패키지를 설치합니다.
RGui 시각화 인터페이스를 사용하는 경우 메뉴 막대기의 프로그램 - 이 단계를 완료할 수 있는 설치 프로그램입니다. pure R Console을 사용하는 경우 다음 명령어를 사용할 수 있습니다:
install.packages("Rserve", repos = "https://mirrors.ustc.edu.cn/CRAN/)
Reserve 설치가 완료된 후, R의 뿌리 디렉토리에 library 디렉토리가 있으며, 그 안에서 Rserve를 찾습니다./java 디렉토리에 접근하여, 디렉토리 아래에 두 개의 파일이 있습니다: RENgine.jar와 Rserve.jar.
이 두 파일은 Java의 R 인터페이스 라이브러리입니다.
주의:Java는 R 시스템에서 독립적으로 R의 기능을 사용할 수 없습니다!
R에 접속하여 다음 코드를 입력하여 Rserve를 시작합니다:
library("Rserve") Rserve()
성공적으로 시작된 경우, R은 Rserve의 경로를 출력합니다.
먼저 언제든지 두 개의 jar 라이브러리를 입력합니다.
импорт 이후에, 중요한 클래스인 RConnection을 인식하겠습니다. 이 클래스는 Rserve에 연결할 수 있습니다.
지금 Java에서 R을 사용하여 역행렬 계산을 수행하겠습니다:
import org.rosuda.REngine.Rserve.*; public class Main { public static void main(String[] args) { RConnection rcon = null; try { // Rserve와의 연결을 설정 rcon = new RConnection("127.0.0.1"); // eval() 함수는 R 실행을 위해 R 문장을 사용 // 여기서 m1 행렬 rcon.eval("m1 = matrix(c(1, 2, 3, 4), 2, 2, byrow=TRUE // solve() 함수는 R에서 m1 행렬의 역행렬로 변환 // 결과를 반환하고, asDoubleMatrix 함수는 데이터를 // Java의 double 두차원 배열로 행렬을 표현 double[][] m1 = rcon.eval("solve(m1).asDoubleMatrix(); // 행렬의 내용 출력 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(); } } e.printStackTrace(); } if (rcon != null) rcon.close(); } } }
실행 결과:
-1.9999999999999998 1.0 1.4999999999999998 -0.49999999999999994
결과는 명확합니다만, float이므로 출력이 어색할 수 있습니다. 데이터 사용에는 영향을 미치지 않습니다.