2011-02-26 3 views
3

저는 R의 새로운 사용자이고 Emacs Speaks Statistics (ESS)를 사용하기 시작했습니다. 또한 rpy2 (R에 파이썬 인터페이스)를 사용하여 이맥스에서 실행중인 ipython 셸에서 R 프로세스를 시작할 수 있습니다.ESS와 rpy2는 Emacs에서 R 프로세스를 공유합니다.

ESS와 rpy2가 어떻게 동일한 R 프로세스를 공유하도록 할 수 있습니까? 그렇다면 Python/rpy2에서 약간의 R 객체를 설정하고 ESS로 전환 한 다음 Python을 사용하지 않고 R 명령을 직접 실행할 수 있습니다./rpy2?

예를 들어, M-x R을 사용하여 Emacs 내에서 R을 시작한 다음 내 ipython 세션에서 rpy2.robjects.r이 실행중인 R 프로세스를 가리 키도록합니다. 또는 대안으로 나는 rp2.robjects.r으로 파이썬에서 R을 시작한 다음 ESS가 파이썬 임베디드 R 프로세스에 연결하도록 할 것이다.

문제는 rpy2의 R 프로세스가 파이썬 인터프리터에 포함되어 있고 R 객체를 나타내는 Python 객체가 rpy2를 거치지 않고 R을 직접 조작 할 수있는 경우 "동기화되지 않음"이 될 것이라고 생각하십니까? rpy2와 Emacs 프로세스 처리가 어떻게 작동하는지에 대한 완전한 통찰력이 없다는 것을 인정합니다 ...

답변

2

원하는 것은 rpy2 기술에 기반한 R 콘솔입니다. 이것은 너무 어렵지 않습니다.

R 's 'eval'함수에 대한 rpy2 인터페이스가 있다고 상상해보십시오. 따라서 파이썬 코드를 사용하여 줄을 읽고 rpy2.eval (줄) 또는 무엇이든 먹이면됩니다. 그런 다음 명령 줄 불러 오기 및 편집 등을 통해 멋진 콘솔 스타일의 인터페이스로 정리할 수 있습니다.

대화 형 R로 끝나면 콘솔을 'q()'가 아닌 일부 코드로 종료 할 수 있습니다!) 파이썬 인터프리터를 돌려 받으십시오.

나는이 물건이 아직 지어지지 않았다고 생각하지만 비슷한 것들이있다. Quantum GIS (mapping s/w) 용 'manageR'플러그인은 python에서 시작되어 rpy를 사용하는 R 콘솔을 제공합니다.

ESS를 실제로 활용한다면 ESS의 입력을 듣기 파이썬 프로세스에 보내어 R '평가'기능을 사용할 수있는 방법이 필요합니다. 나를 넘어.

0

Spacedman의 답변에 따르면 Python + rpy2를 사용하여 R 콘솔을 빌드해야 할 수 있습니다.

그러나 Emacs를 실행하기 전에 "R"에 별칭을 지정하는 것이 가장 쉽습니다. Emacs의 "Meta-x R"방식은 "진짜"R 콘솔이 아니라 "Ema"라고 부릅니다. 이것은 한 부분에만 해당됩니다. ess R- 콘솔과 파이썬 세션 플러그가 같은 R에 있기를 원한다면 어떤 종류의 클라이언트 - 서버 레이어를 구현해야합니다.

관련하여 Nathaniel은 자신의 rnumpy (rpy2 맨 위에있는 레이어, rpy2-2.0.x와 만 호환 가능)에서 진짜 멋진 기능을 구현했습니다. ipython과 함께 사용하면 R 같은 콘솔로 돌아갈 수 있고 ipython Python 콘솔로 돌아갈 수 있습니다. Emacs를 통해 ipython을 돌릴 수 있으며, R로 전환 할 때 ess-R 모드를 활성화 할 수도 있습니다.

관련 문제