2017-03-13 8 views
1

knitr LaTeX 문서 (.Rnw)로 몇 문장을 인쇄하고 싶습니다. 그러나 일부 데이터가있는 경우에만 인쇄하고 싶습니다. 그 문장은 대부분 텍스트 있지만, 일부 R.LaTeX knitr 문서에서 동적 텍스트의 조건부 출력

예와 함께 :

A chi-squared test of your observed sizes has a p-value of 
\Sexpr{format(calculated_chisq$p.value,digits=3,scientific=F)}. 
A p-value below 0.05 means you should be concerned that your 
groups are broken. The lower the p-value, the more worried you 
should be. 

나는 results='asis'로 덩어리를 시도,하지만 난 노력

청크가 R.로 해석됩니다 생각 print()paste() R은 추악 합니다만 작동합니다. 그러나 R 프롬프트에 해당하는 텍스트가 추가됩니다.

이렇게하는 좋은 방법이 있습니까?

This은 관련이 있지만 다르다. This은 동일하지만 답이 없습니다.

답변

1

이 질문은 밀접하게 that question과 관련이 있지만, 중복되지 않습니다. 거기에 받아 들여지는 대답은 추악한 \Sexp 괴물로 해석됩니다. 코드는 읽거나 쓰는 것이 좋지 않습니다.

My own answerasis 엔진에서 텍스트의 동적 요소를 허용하지 않으며 asis의 출력이 RNW 문서에서 회색 배경색이되기 때문에 적용 할 수 없습니다.

\documentclass{article} 
\begin{document} 

<<>>= 
    x <- rnorm(1) 
@ 

The value of $x$ is \Sexpr{x}. 

<<echo=FALSE, results = "asis">>= 
    pattern <- "This will only be displayed if $x$ is positive. The value of $x$ is %.2f." 
    if (x > 0) cat(sprintf(pattern, x)) 
@ 

\end{document} 

조건부 출력 읽고 쓰기 쉽다 (pattern) 및 동적 요소 sprintf 통해 삽입되어

는 I는 다음의 해결책을 제시한다.