2012-03-15 2 views
1

명령 라이브러리 (예측) 및 라이브러리 (RcppArmadillo)를 실행할 때 오류가 없습니다. 그러나 스크립트에서이 명령을 실행하려고하면 스크립트를 실행할 수 없습니다.스크립트에서 예측 또는 RcppArmadillo 패키지를로드 할 수 없습니다.

이 경우 약간의 차이가 있습니다. 첫째, R 버전이 2.14 이상인 시스템에서만이 오류가 발생합니다. R 2.13.0에서이 스크립트를 성공적으로 실행했으며 R 버전 2.14.1 및 2.14.2가있는 컴퓨터에서 오류가 발생했습니다.

find.package ("forecast") 명령과 마찬가지로 find.package ("RcppArmadillo")는 스크립트 내부에서 오류를 반환하지 않으므로 스크립트에서 패키지를 찾을 수는 있지만로드 할 수는 없습니다.

Rcpp, tseries, fracdiff, qcc, quadprog, zoo 및 parallel의 6 가지 패키지로 스크립트 (예측)를 대체하는 스크립트를 성공적으로 실행했습니다.

R 콘솔에서로드 할 수있는 경우에도 왜이 두 패키지를로드 할 수 없는지 누가 알 수 있습니까? R 버전> 2.14에서만이 오류가 발생하는 이유는 무엇입니까? 나의 초기 생각은이 패키지들이 R> = 2.14에 의존한다는 사실과 관련이있을 것이라는 것이었다.

고맙습니다.

+0

스크립트가 오류 메시지를 표시합니까? 당신은 그것을 "실행할 수 없다"라고 묘사하지만 정확한 행동/메시지는 무엇입니까? –

+0

브라이언, 우리는 임베디드 R, 특히 R_tryEval 함수를 사용하여 C++을 통해 스크립트를 실행하고 있습니다. 이 함수는 오류가 발생하면 1을 반환하고 오류가 발생하지 않으면 0을 반환합니다. R_tryEval이 0을 반환하면 스크립트가 결과를 반환하거나 R_tryEval이 1을 반환하면 실행 오류를 반환합니다. 따라서 정확한 오류 동작을 확인하거나 오류 메시지를 검색 할 수 없습니다. 필자가 알고있는 것은 라인 라이브러리 (예측) 또는 라이브러리 (RcppArmadillo)를 추가하면 스크립트가 실행 오류를 반환한다는 것입니다. 내 스크립트에 해당 함수 호출이 포함되어 있지 않으면 내 스크립트가 성공적으로 실행됩니다. –

+0

확인해 주셔서 감사합니다. 나는 임베디드 R을 사용한 적이 없기 때문에 다른 사람이 당신을 도울 수 있기를 바랍니다. –

답변

2

이 문제는 RcppArmadillo가 라이브러리를로드 할 때 스크립트가 찾을 수없는 Rlapack.dll 파일에 종속되어 있음을 발견했습니다. 해결책은 Rlapack.dll 파일을 라이브러리/RcppArmadillo/libs/i386 하위 폴더에 복사하는 것입니다. 이번 변경 작업을 통해 스크립트를 성공적으로 실행할 수있었습니다.

이 문제와 관련하여 두 가지 질문이 있습니다.

1) R 콘솔을 통해 실행할 때 Rlapack.dll 파일을 찾을 수 있었는데 스크립트 실행 중에 종속 파일을 찾을 수 없었던 이유는 무엇입니까?

2) 왜이 문제는 R> 2.14에서만 발생 했습니까? RcppArmadillo 또는 예측 패키지 중 하나를 업데이트 한 결과입니까?

관련 문제