2011-08-24 3 views
0

여러 개의 탭 delim 파일을 자바를 통해 R에 넘겨 준다. R programm는 그 탭 delim 파일을 하나의 파일로 병합하고 java로 되돌려 보내며 변수 "name"에 캡처된다. windows.Any 도움이 매우 appreciated.Here 대화 상자에서 저장하여 탭 DELIM으로 "이름"에 저장된 파일의 이름을 변경하고 저장하고자하는 자바 코드 :R에서 Java로 파일을 넘겨 준다

import org.rosuda.REngine.*; 

public class rjava { 
    // Before this run Rserve() command in R 


    public String ana(String filenames) 
    { 
     String name = ""; 
      try{ 

       System.out.println("INFO: Trying to connect to R "); 
       RConnection c = new RConnection(); 
       System.out.println("INFO: Connected to R"); 
       System.out.println("INFO: The Server version is "+ c.getServerVersion()); 
      // c.voidEval("source('D:/combine/combining_files.r')"); 
       c.voidEval("source('D:/combine/merge.r')"); 
       c.assign("file",filenames); 
      // name = (c.eval("fn(file)").asString()); 
       name = (c.eval("combine (file)").asString()); 
       c.close(); 
       } 

    catch(Exception e) 
    { 
      System.out.println("ERROR: In Connection to R"); 
      System.out.println("The Exception is "+ e.getMessage()); 
      e.printStackTrace(); 
    } 

    return name; 
    } 
} 
+0

어떻게 * 정확한 * 자바에서 R을 호출하고 있습니까? –

+0

rosuda REngine을 사용하여 R을 호출했습니다. – Dinesh

+0

여기에 무엇이 요청되는지 확실하지 않습니다. 당신이 알아낼 수없는 것은 무엇입니까? 그 한 가지를 어떻게 풀려고 했습니까? 예제 코드를 공유 할 수 있습니까? –

답변

2

저는 R과 Java 사이에 복잡한 객체를 전달하는 것이 고통 스럽습니다. 전체 데이터를 전달하지 않고 파일 이름 만 문자열로 전달합니다. Java가 R에게 새로운 파일 (내 pref)을 작성하도록하거나 Java에서 파일을 읽은 다음 새 이름으로 쓰도록 지시하십시오.

0

당신이 R 프로그램을 수정할 수 있도록 그 주어진 파일 이름 (예 : [path]/filename.out)을 사용하여 동일한 경로의 파일을 출력합니까?

그렇지 않으면 R 프로그램이 주어진 위치에 출력되도록 execte 문자열을 수정할 수 있습니다. 편집 I - http://cran.r-project.org/doc/manuals/R-intro.html#Invoking-R-from-the-command-line

UNIX 또는 Windows에서 명령 줄에서 작업 명령 'R'은 형태 R [options] [<infile] [>outfile]

의 주요 R 프로그램을 시작하는 모두를 사용할 수 있습니다보기 방금 RConnection을 사용하고있는 것을 보았습니다. 은 R 문서에 따르면, 당신은 어디 파이프를 표준 출력

기능 싱크, sink("record.lis")는, 외부 파일에 record.lis을 콘솔에서 모든 후속 출력을 전환합니다 정의 할 수 있습니다.

+0

현재 내 프로그램은 폴더 (자바와 JSP와 서블릿의이 부분)에서 텍스트 파일을 선택하고 R에 선택한 파일을 보내 R의 계산을 수행하고 "write.table"function.But에서 지정한 이름의 폴더에 파일의 이름을 기본 이름이 아니라 사용자가 써야합니다. – Dinesh

+0

저는 R의 명령 줄 호출에 익숙합니다. 다른 것을 사용하고 있습니까? – yottamoto

+0

실제로 내 프로그램은 병합 된 파일을 Java 코드의 java.and로 반환합니다. Windows의 표준 저장 대화 상자를 사용하여 내 이름으로 저장해야합니다. – Dinesh

관련 문제