2017-01-24 6 views
1

node.js 서버에서 Rscript를 실행하려고했습니다. 온라인 예제를 따르려고했지만 null 개체가 계속 반환되거나 프로세스가 영원히 계속 실행되는 경우가 있습니다. 아래의 코드 스 니펫을 언급했습니다. 고맙습니다.node.js에서 Rscript 호출하기

example.js ::

var R = require("r-script"); 


var out = R("scripts/testScript.R") 
     .data("hello world", 20) 
     .callSync(function(err,resp){ 
         console.log(out); 
        }); 

testScript.R 파일 :::

needs(magrittr) 
set.seed(512) 
do.call(rep, input) %>% 
strsplit(NULL) %>% 
sapply(sample) %>% 
apply(2, paste, collapse = "") 
+0

그냥 "hello"를 인쇄하는 사소한 R 프로그램을 사용하면 어떻습니까? –

+0

어떤 프로세스가 R 프로세스 또는 노드 프로세스를 영원히 실행합니까? 또한 나는 함수가 반환되기 전에 정의되지 않은'.callSync' 콜백에서 변수를 로깅하려고 시도하는 것이 문제라고 생각합니다. – snaut

+0

여기에 예제가 있지만'r-script'를 사용하지는 않습니다 : https://github.com/stla/CallingRinNode –

답변

1

윈도우 사용자의 경우 : 당신은 윈도우의 % 경로 %로 환경 변수를 추가 할 필요가

변하기 쉬운. R 스크립트 패키지는 CMD에서 "R"명령을 호출해야합니다. R.exe가 환경 변수로 설정되지 않은 경우 아무 곳에서나 "R"명령을 호출 할 수 없습니다.

Windows에 환경 변수를 추가하는 방법을 찾아보십시오. 실행 파일이 들어있는 폴더의 경로에 공백이 있으면 큰 따옴표 사이에 추가해야합니다. "C는 : \ 프로그램 파일 \ R \ R은-3.3.2 \ 빈 \ x64의는"

당신은 이미이 작업을 수행 한 경우 그러나 문제는 두 가지 이유를 생각할 수, 지속 :

  1. 가있다 귀하의 R 방법에 문제가 있으며 R 세션 내부에서 내부 예외가 발생합니다.

  2. 시스템에서 파일을 찾을 수 없습니다. 파일 경로를 확인하십시오.