Извикване на R в java-Rcaller

Опитвам се да внедря групиране с помощта на R в java, като използвам R caller. Опитвам се да стартирам примерен код за валидиране на клъстери и получавам тази често срещана грешка, с която се сблъскват повечето потребители: Преждевременен край на файла

package test;
import rcaller.RCaller;
import java.io.File;
import java.lang.*;
import java.util.*;
import java.awt.image.DataBuffer;

public class test3 {
    public static void main(String[] args) {
        new test3();
    }

    public test3()
    {

        try{

            RCaller caller = new RCaller();
            caller.cleanRCode();

            caller.setRscriptExecutable("C:/Program Files/R/R-2.15.1/bin/x64/Rscript");
            caller.cleanRCode();

            caller.addRCode("library(clvalid)");
            caller.addRCode("data(mouse)");
            caller.addRCode("express <- mouse [,c(M1,M2,M3,NC1,NC2,NC3)]");
            caller.addRCode("rownames (express) <- mouse$ID ");
            caller.addRCode("intern <- clValid(express, 2:6 , clMethods = c( hierarchical,kmeans,diana,clara,model) ,validation = internal)");
            caller.addRCode("b <- summary(intern) ");
            caller.runAndReturnResult("b");
        }

        catch (Exception e){
            e.printStackTrace();
        }
    }
}

person user2007506    schedule 24.01.2013    source източник
comment
Защо не използвате клъстерни алгоритми, базирани на Java, като тези в ELKI?   -  person Has QUIT--Anony-Mousse    schedule 24.01.2013
comment
Трябва да пакетирам R скрипт в java. Така че след извършване на клъстериране в R трябва да го запазим като Jar файл.   -  person user2007506    schedule 25.01.2013


Отговори (1)


Имате някои правописни грешки в кода си. като clValid not clvalid и пропускате много кавички като "йерархичен",....

Мисля, че е по-добре да поставите кода си в скрипт и да го извикате от java по следния начин:

Runtime.getRuntime().exec("Rscript myScript.R"); 

където myScript.R е:

library(clValid)
data(mouse)
express <- mouse [,c('M1','M2','M3','NC1','NC2','NC3')]
rownames (express) <- mouse$ID 
intern <- clValid(express, 2:6 , clMethods = c( 'hierarchical','kmeans',
                                               'diana','clara','model') ,
                                                validation = 'internal')
b <- summary(intern) 
person agstudy    schedule 24.01.2013
comment
Благодаря за отговора!! можете ли да ми кажете къде трябва да се напише/съхрани този Rscript?..Нов съм както в R, така и в Java - person user2007506; 25.01.2013
comment
За да избегнете проблема с пътищата, можете да дефинирате извикването на Rscript в пакетен файл като тук и го извикайте от java като тук - person agstudy; 25.01.2013
comment
Когато извикам груповия файл от java, той показва съобщение за грешка Достъпът е отказан. Освен това искам да пакетирам R скрипт в java - така че извикването на R скрипта от партиден файл няма да е достатъчно. - person user2007506; 28.01.2013