2012-11-25 3 views
2

나는 R과 Sweave를 배우기 시작했고, 지난 2 시간 동안 내 Google-fu에 따르면 다소 불명하거나 드문 것처럼 보이는 문제를 알아 내려고 노력했습니다. 문제에 대한 두 가지 참조 만 있음).재사용 된 코드 덩어리의 공백

즉, Sweave에서 코드 덩어리를 다시 사용하는 경우에는 not allowed any preceding whitespace 인 것 같습니다. 예를 들어 : << (오류 라인 들여 쓰기에 따라 달라집니다)로 시작하는 라인 앞에 공백이있는 경우 예상대로

\documentclass{article} 

\begin{document} 

<<label=fig1boxplot, include=FALSE>>= 
boxplot(mpg~cyl,data=mtcars) 
@ 

\begin{figure} 
\centering 
<<label=fig1, fig=TRUE, echo=FALSE>>= 
<<fig1boxplot>> 
@ 
\end{figure} 

\end{document} 

이 작동하지 않습니다. 나는 나를 (<<label=...)

  • 왜 Sweave 재사용 코드 공백을 허용하지 않습니다 여전히 청크가 재사용 라인 (<<figboxplot>>)가 아닌 다른 덩어리를 들여 할 수있는 R 개발자 메일 링리스트에 work-around 발견 특히, 해결 방법은 실제로 구현하기가 매우 사소한 것처럼 보입니다.
  • 내가 좋아하는만큼이 문제를 해결하고 덩어리 (또는 그 문제에 대한 Sweave 코드)를 들여 쓰려면 어떻게해야합니까?
+1

그냥 분명히 왜 Sweave 파서가 어떻게 작동하는지 묻는 것입니까? – joran

+0

사실 나는 임시 해결책을 시도 했으므로'<>'줄을 들여 쓰는 문제 만 해결할 것이지만 청크 ('<< label = ...')의 시작을 나타내는 줄은 모두 들여 쓰기 할 수 있습니다. 여전히 오류 또는 잘못된 출력이 발생합니다. 아직 답변이 없으므로이 문제를 해결하는 방법에 대한 일반적인 질문을 추가했습니다. – ThomasH

답변

3

짧은 대답은 knitr 대신 코드 덩어리의 들여 쓰기를 허용하는 것입니다.

Sweave에 대한 질문에 대한 답변도 짧습니다. 의도적으로 설계된 것입니다 (적어도 현재는). 제 개인적인 경험은 당신이 말한대로 구현 노력의면에서 사소한 것이라 할지라도 그것이 실현되도록하는 것이 어렵다는 것입니다. 이것이 R 추가 패키지의 좋은 이유입니다.

+2

@ThomasH 당신은 _two years_보다 오래 전에 릴리스 된 R 버전을 사용하고 있습니다. 이것은 끔찍한 일이며, 우분투에서 저장소를 설정하는 것이 매우 쉽다는 점을 고려할 때 R을 업데이트 할 것을 강력히 권장합니다. http : // cran .r-project.org/bin/linux/ubuntu/본 오류 때문에'~/.Renviron'에있는'R_LIBS_USER' 환경 변수를 쓰기 가능한 디렉토리로 설정하는 것이 좋습니다. https://github.com/yihui/configuration/blob/master/.Renviron –

+0

도움을 주셔서 감사합니다. 필자는 불쌍한 오래된 노트북을 죽이지 않고 10.10에서 12.04로 Ubuntu를 업데이트했고 2.15.2 버전으로 R을 얻을 수있었습니다.하지만'ppa : marutter/rrutter'를 내 소스 목록에 추가해야했지만, Irish CRAN 미러를 사용하여 2.14에서 2.15로 업데이트하십시오. – ThomasH

+0

@ 토마스 위대한. Precise Pangolin 및 R 2.15.2에 오신 것을 환영합니다! –