2010-10-27 37 views
20

Chúng tôi đang làm việc trên một dự án thống kê phức tạp trên Java. Chúng tôi đã làm mã gốc trong số R programming language. Có cách nào để chuyển đổi mã này thành mã số Java (bộ chuyển đổi) hay không bằng cách nào chúng tôi có thể sử dụng R trong một dự án Java?sử dụng lập trình R trong java

Trả lời

22

Trong khi tôi không biết về 'công cụ chuyển đổi', có một giao diện được gọi là rJava sẽ cho phép bạn chạy mã R trực tiếp từ Java.

http://www.rforge.net/rJava/

rJava là một giao diện đơn giản R-to-Java. Có thể so sánh với giao diện .C/.Call C . rJava cung cấp cầu nối mức thấp giữa R và Java (qua JNI). Nó cho phép tạo các đối tượng, gọi phương pháp và các lĩnh vực tiếp cận của Java đối tượng từ R.

Trong một cảm giác nghịch đảo của rJava là JRI (Java/R Interface) cung cấp các ngược hướng - gọi R từ Java. JRI hiện được giao như một phần của gói gói rJava, mặc dù nó vẫn là có thể được sử dụng như một thực thể riêng biệt (đặc biệt là để phát triển). Hiện tại rJava được sử dụng như một phần của JGR, iPlots và JavaGD phần mềm/gói.

10

Bạn có thể thử Renjin (http://www.renjin.org):.

"Renjin là một thông dịch viên JVM-based cho ngôn ngữ R cho tính toán thống kê Dự án này là một sáng kiến ​​của BeDataDriven, một công ty cung cấp tư vấn trong phân tích và ra quyết định hệ thống hỗ trợ."

+0

gói Dự báo không hoạt động –

0

Khi @Seidr cho biết, bằng cách sử dụng rJava, chúng tôi có thể chạy mã R trực tiếp từ các phương thức Java.

  1. mở R console và cài đặt rJava gói

    install.packages("rJava") 
    

    Bây giờ bạn sẽ tìm thấy rJava trong "R home \ thư viện"

  2. Bây giờ trong nhật thực, thêm JRI.jar, JRIEngine.jar, REngine.jar để xây dựng đường dẫn xây dựng. Những lọ này có sẵn trong "R home \ library \ rJava \ jri"

  3. Tạo đối tượng Rengine.
  4. Bây giờ, hãy tạo hai vectơ, thêm chúng và lưu trữ trong một biến khác. Bây giờ in biến kết quả đó trong bảng điều khiển.

    Rengine engine = new Rengine(new String[]{"--no-save"},false,null); 
    String aVector = "c(1,2,3)"; 
    String bVector = "c(4,5,6)"; 
    engine.eval("a<-"+aVector); 
    engine.eval("b<-"+bVector); 
    engine.eval("c<-a+b"); 
    
    System.out.println("Sum of two vectors : c = "+engine.eval("c")); 
    

Hope bên dưới liên kết giúp (step-by-step thủ tục để tích hợp R trong Java).

http://www.codophile.com/how-to-integrate-r-with-java-using-rjava/

+1

Chào mừng bạn đến SO.Xin lưu ý rằng các câu trả lời lặp đi lặp lại được đưa ra trước đó và các câu trả lời "chỉ liên kết" thường bị cau mày. Thay vì chỉ đưa ra liên kết, hãy tóm tắt các bước trong câu trả lời của bạn và tham khảo với liên kết đến nguồn gốc. Bằng cách đó, câu trả lời không trở thành không hợp lệ khi liên kết biến mất. Ngoài ra: hướng dẫn đó không đầy đủ (như được giải thích thêm trong các ý kiến ​​trên blog đó). –

Các vấn đề liên quan