문제

나는 Emacs Ess 조합을 좋아합니다. 나는 마우스를 사용하지 않고 평가를 위해 명령 줄로 줄, 함수, 영역 및 버퍼를 보내는 것을 좋아합니다.

그러나 나는 그것을 알아 차렸다 Eval Function EMACS의 명령은 단순히 달리는 것보다 훨씬 느립니다 source("fns.R"), 어디 fns.R 평가하려는 기능이 포함 된 파일입니다.

왜 이런 경우입니까?

도움이 되었습니까?

해결책

나는 사람들이 생각합니다 ESS 목록 더 나은 답변이 있습니다. 그러나 보이지 않게 평가하면 처리가 훨씬 빠릅니다. 이를 .emacs 파일에 넣으십시오.

(setq ess-eval-visibly-p nil)

다른 팁

나는 단지 추측하고 있지만 당신이 말할 때

  • source("fns.R") 당신은 EMACS/ESS를 전혀 포함시키지 않으며 컴퓨팅 시간은 R이 파일에서 으르렁 거리며 소화하는 데 걸리는 시간입니다.

  • Eval Function 지역을 EMACS 통역사에게 전달하여 (아마도 라인 별)를 R 엔진으로 보내야하는 다음 조각적인 방식으로 소화해야합니다.

그리고 그것은 두 번째 접근 방식을 느리게 만들 것입니다.

그러나 그랜드 사물의 계획에서 누가 신경 쓰나요? 나는 종종 전체 버퍼 나 큰 영역을 보내고, 아마도 2 초가 걸릴까요? 나는 아직도 --- 당신이 말한대로 --- (풍부한) 편집자와 기본 언어가 그런 식으로 상호 작용할 수있는 능력은 매우 강력하다고 생각합니다.

Emacs 해커와 ESS 팀에 대한 Kudos.

전체 버퍼를 실행하려면 UNIX/Linux에있는 경우 Shebang으로 스크립트를 시작할 수도 있습니다.

#!/usr/bin/Rscript

파일을 실행 파일로 만드십시오

chmod 744 myscript.r

(Google을 읽는 것을 기억합니다. r 스크립트가 .r로 끝나는 R 스크립트를 좋아하지만 오, 잘 ...) 이런 식으로 실행할 수 있습니다.

./myscript.r

그리고 논쟁과 함께

./myscript.r arg1 arg2

(실제로 MATLAB 시스템 호출에서 R 기능을 호출하는 데 사용한) 및 R 파일에서 사용할 수 있습니다.

userargs = tail(commandArgs(),2) 

Arg1 및 Arg2를 얻기 위해. Shebang 없이도 할 수 있습니다.

R --no-save < myscript.r arg1 arg2

등등. 창문으로 나는 그것을 기억합니다

R CMD BATCH myscript.r

또는 그 효과에 대한 것 ... ESS를 통해 명령을 실행할 때 약간의 지연이 발견되었습니다 (나는 ESS를 좋아하지만 ESS를 좋아하지만 극진히) 따라서 전체 버퍼를 실행하고 싶을 때 때때로 R 스크립트 아래의 창에서 쉘을 시작하고 (R 버퍼가 일반적으로 상주하는 곳) 위의 트릭을 사용합니다.

당신은 또한 사용할 수 있습니다

echo 'source("myscript.r")' | R --no-save

또한 - R 또는 R 버퍼에서 직접 실행중인 '소스 ( "myscript.r")를 통해 이러한 방법을 사용하면 이점이있는 이점은 명확한 작업 공간으로 시작한다는 것입니다 (.RProfile이 아닌지 조심해야하지만. 'source ( "~/.rscript")' 'myscript.r'에서 명시 적으로 ') 호출하지 않으면로드되므로 스크립트가 자체 포함되어 있는지 확인할 수 있습니다 (적절한 라이브러리라고 부르며 어휘 스코핑 된 기능이 Aren' t 제거를 잊어 버린 글로벌 공간에서 의도하지 않은 변수를 참조하십시오).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top