2017-03-13 6 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プロンプトに対応するような余分なテキストを置きます。

これを行うには良い方法がありますか?

Thisは関連していますが、異なっています。 Thisは同じですが返信はありません。

答えて

1

この質問は、that questionと密接に関連していますが、重複しているとは思わない:受け入れられた答えは、醜い\Sexpの状態のモンスターになります。コードは読んだり書いたりするのにいいものではありません。

My own answer 1)asisエンジンでテキスト内の動的要素が許可されていないため、2)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介して挿入されている:

は、私は、次の解決策を示唆しています。