이것은 대단히 간단한 요청이며, 아직 해결책을 찾지 못했다고는 생각하지 않지만 운이 없다면 지금까지 광범위하게 검색해 왔습니다.ESS & Knitr/Sweave : Rnw 파일을 대화식 세션으로 보내는 방법은 무엇입니까?
나는 .Rnw
파일을 Emacs에로드했고, 나는 M-n s
을 사용하여 컴파일했다. 모든 것이 잘 작동하고 버퍼도 R
개까지 열립니다. 큰. 하지만 버퍼 은 전적으로 쓸모가 없습니다. 그것은 내가 방금 제공 한 객체를 포함하지 않습니다!
예 최소한의 .Rnw
파일 :
\documentclass{article}
\begin{document}
<<>>=
foo <- "bar"
@
\end{document}
이 M-n s
을 사용하여, 나는 지금로드 세션으로 새로운 R-버퍼를 가지고 있지만 :
> foo
Error: object 'foo' not found
실망 그. 나는 데이터를 대화식으로 놀고 싶다. 어떻게 달성 할 수 있습니까? 나는 파일을 줄 단위로 소싱하고 싶지 않다. 지역별로 C-c C-c
또는 코드를 변경할 때마다 비슷한 내용을 원한다. 이상적으로는 Rstudio의 소스 함수와 같아야합니다. 즉, 을 완전히 준비된 R 세션으로 남겨 둡니다.
아직 스웨터로 시도하지 않았으며 knitr 만 사용했습니다.
EDIT : eval=TRUE
청크 옵션이 올바른 동작을하지 않는 것 같습니다.
특히,'knitr'은'knit (..., envir = globalenv())'(가끔은 부모)를 제외하고는 기본적으로'parent.frame()'의 코드를 평가합니다.frame()'은 단지'globalenv()'이고, 가끔은 그렇지 않습니다.) –
당신이 이것을 고쳤다 니. 감사! @ Yihui의 주석에 따라 필자는'$ EMACS_HOME/site-lisp/ess/etc/ESSR.R "'에서'.ess_weave()'를 편집하여'envir = parent 'knit()'의 디폴트 인'envir = parent.frame()'이 아니라'.files (2)'('command (file, envir = parent.frame (2))'와 같다. (나는 요즘 ** knitr ** 사용자 일 뿐이므로 Sweave로 편집하는 방법을 잘 모릅니다.) –
답변 해 주셔서 감사합니다! 'ess-swv-processing-command'를 설정하는 것은 나에게 도움이되지 못했지만 지금 당장'envir = globalenv() '를 사용하려고합니다. 개발 버전으로 전환하고 싶지는 않다고 생각하지만, 업스트림 ESS를 매 (hawk)처럼 보겠습니다 :-) –