English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
ابتدا، در R کتابخانه "Rserve" را نصب کنید.
اگر از رابط ویزوئال RGui استفاده میکنید، میتوانید این مرحله را در منوی پیکربندی - نصب کتابخانهها انجام دهید. اگر از کنسول R استفاده میکنید، میتوانید از دستور زیر استفاده کنید:
install.packages("Rserve", repos = "https://mirrors.ustc.edu.cn/CRAN/")
پس از نصب کامل Reserve، یک پوشه library در ریشه R وجود خواهد داشت، در آن به پوشه Rserve/java بروید و دو فایل REngine.jar و Rserve.jar را در آن پیدا کنید.
این دو فایل کتابخانههای رابط Java هستند.
توجه: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 // تم إنشاء صفيف m1 هنا rcon.eval("m1 = matrix(c(1, 2, 3, 4), 2, 2, byrow=TRUE)"); // دالة solve() في R تبحث عن معكوس الصفيف m1 // سيتم تحويل البيانات إلى الصفيف الثنائي باستخدام دالة asDoubleMatrix // الصفيف الثنائي من Java لتمثيل الصفيف 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
من الواضح، النتيجة صحيحة، ولكنها أرقام عشوائية، لذا قد لا تبدو مبهرة عند الطباعة، ولكنها لا تؤثر على استخدام البيانات.