2016-06-20 4 views
1

그래서 간단한 R 스크립트를 실행하기 위해 간단한 파이썬 코드로 작업하고 있습니다. R 스크립트는 약 6 행이지만 "pracma"패키지를 사용합니다. 파이썬에서 subprocesses 모듈을 사용하면 스크립트를 실행하지만 일반적인 "Error in library (pracma) : 'pracma'라는 패키지가 없습니다. 나는 비 기본 패키지가 설치된 R 스크립트를 실행할 수있는 간단한 솔루션을 찾고있다. 어떻게 든 rpy2를 사용하여이 작업을 수행 할 수 있지만 pip를 사용하여 설치할 수는 없으며 Anaconda3도 사용하고 있습니다.Python에서 패키지를 포함하는 R 스크립트 실행 코드

전체적으로 나는 패키지가 설치된 R 스크립트를 실행하는 간단한 패키지를 원합니다. 어떤 도움이라도 대단히 감사하겠습니다.

이 내 파이썬 코드의 관련 부분입니다 : @로

Error in library(pracma) : there is no package called 'pracma' 
Execution halted 
+0

여기 패키지, 라이브러리 또는 플러그인을 요청하는 것이 적합하지 않습니다. 답변과 의견은 주로 의견을 바탕으로 작성되었습니다. 코드를 제공하면 시도한 추가 라인이나 수정 사항을 제공하는 데 도움이 될 수 있습니다. 귀하의 시도를 보여주십시오. 감사. – Dilettant

+0

제가 언급 한 관련 코드를 추가하기 위해 편집했습니다. 감사합니다 @Dilettant – BBollen23

+0

'Rscript'가 잘못된 곳에서 보이는 것처럼 보입니까? '.libPaths()'등을 시도 했습니까? – Dilettant

답변

0

감사 :

library(pracma) 

setwd('HausdorffData') 

PointsA <- as.matrix(read.table("HFileA.txt", header = FALSE)) 
PointsB <- as.matrix(read.table("HFileB.txt", header = FALSE)) 

H = hausdorff_dist(PointsA, PointsB) 
write(H, file = "hausdorff.txt",ncolumns = 1, append = FALSE) 

이 다음과 같은 오류가 발생 :

sp.run('Rscript Hausdorff.R', shell=True) 

bFile = open("HausdorffData/hausdorff.txt", "r") 
result = bFile.read() 
bFile.close() 
hausdorff_dist = float(result) 

return hausdorff_dist 

이 내 R 스크립트입니다 이것에 대한 딜레마 :

R이 겉으로보기에는 스크립트를 개별적으로 실행할 수있는 경우에도 R 스크립트를 파이썬과 같은 것으로부터 실행할 때 스크립트가 라이브러리의 경로를 알고 있는지 확인해야합니다. 코드 : 코드 변경 작업 디렉토리를 포함하는 다른 선이

.libPaths(dir\to\package) 

경우 해당 라이브러리 경로를 변경하여 영향을받지 않습니다.

+0

이것은 특별한 사용 사례입니다. 다른 프로그램에서 R 스크립트를 호출 할 때'.libPaths()'를 지정할 필요가 없습니다. Python에서 많은 R 스크립트를 실행했습니다. R 스크립트를 어떻게 부르니? 서브 프로세스 모듈이 아닌'sp.run()'은 무엇입니까? – Parfait

+0

sp.run()은 하위 프로세스 모듈에 있습니다. 그것은 파이썬 3.5에서 추가되었습니다. 그리고 어쩌면 그것은 정말로 특별한 경우이지만, 내가 sp.call() 또는 sp.run()으로 호출해도 문제가되지 않습니다. 이것은 내가 그렇게 쉬운 문제 였을 때 주위를 둘러 보았을 때 그 해결책을 찾기가 어려웠던 이유일지도 모른다. – BBollen23

관련 문제