我已经编写了一些包含第三方二进制文件的自定义R代码。二进制文件的一个特性是生成带有图形和一些文本的LaTeX文档。我的代码的一个特性是解析该文档并返回该图的LaTeX代码。
目标是将我的R代码嵌入到Rnw文档中。运行Sweave时,我希望我的代码使用第三方二进制文件生成文档,然后提取图形的LaTeX代码并将其放入Sweave的.tex输出中。然后,当我针对该输出运行latex时,第三方二进制文件生成的数字应该在我的报告中自动且格式化地显示。
相反,LaTeX代码打印出来如下:
[1] " %\\begin{landscape}"
[1] " \\begin{center}"
[1] "\\psset{linecolor=black,tnsep=2pt,tnheight=0cm,treesep=.3cm,levelsep=40pt,radius[1] "% \\def\\psedge#1#2{\\ncangle{#2}{#1}}"
[1] "% \\pstree[treemode=R]"
[1] " \\pstree{\\Tcircle{ 1 }~[tnpos=l]{\\shortstack[r]{nwsprec\\\\$\\leq$ 1.93}}}{"
等等......
有没有办法让Sweave将R的输出视为LaTeX代码?
提前致谢。 -Wesley
答案 0 :(得分:9)
我明白了! Sweave代码需要如下所示:
<<echo=False, results=tex, include=True>>=
...R code goes here...
@
选项results=tex
是关键变化,告诉Sweave将R的输出解释为LaTeX代码。
为了摆脱引号和行号,我需要在R而不是cat
中使用print
命令。具体来说,我将print(line)
更改为cat( paste(line, "\n", sep='') )
。