我不是乳胶新手,而是R,RStudio和Knitr,它们实际上是非常强大的工具。 我正在一个合理的大R脚本输出几个图。我的意图是使用Knitr设置latex文档,以便我可以继续使用我的R脚本,并且当我确实想要报告时,我跳转到.rnw并进行编译,并且我确信它会拥有最新生成的数据,因为它会直接读取.r脚本。R,Knitr和Latex(winedt和RStudio)编译和外化
首先,我想问一些关于如何做最佳做法的指导?我一直在考虑## ---- preambule
并为每个相关的情节做这件事?一组情节?并在开始时放置一个read_chunk来加载数据并完成所有初步的工作。
让我们说这是一个很好的方式来做我想做的事情,并继续解决我遇到的问题。
我的脚本在R中运行得很好,没有一个警告,但是当read_chunk(file.R)
与Echo=TRUE
一起被调用时,我看不到相同的输出。首先它通过了PDF,但确实生成了我可以编译的.tex。我看到的输出短得多,好像在某些点停止阅读。
我得到的错误是
processing file: minimal.Rnw
|
| | 0%
|
|....... | 11%
ordinary text without R code
|
|.............. | 22%
label: external-code (with options)
List of 1
$ echo: logi FALSE
|
|...................... | 33%
ordinary text without R code
|
|............................. | 44%
label: preambule (with options)
List of 1
$ echo: logi FALSE
|
|.................................... | 56%
ordinary text without R code
|
|........................................... | 67%
label: boring-random
|
|................................................... | 78%
ordinary text without R code
|
|.......................................................... | 89%
label: boring-plots (with options)
List of 3
$ fig.width : num 4
$ fig.height: num 4
$ out.width : chr ".4\\linewidth"
|
|.................................................................| 100%
inline R code fragments
output file: minimal.tex
Error in regexpr("\\.([[:alnum:]]+)$", x) : object 'filename' not found
Calls: file_ext -> regexpr
Execution halted
然而,脚本不包含任何幻想。只需在加载数据,创建像SaveImage
的一些功能和那种事情......
我有想法在我的脚本是什么使用正则表达式...
也许这是不相关的,但是这是输出我得到的时候echo=TRUE
## Loading required package: methods
## Loading required package: MASS
## Loading required package: modeest
##
## This is package 'modeest' written by P. PONCET.
## For a complete list of functions, use 'library(help = "modeest")' or 'help.start()'.
##
## Loading required package: car
##
## Attaching package: 'lubridate'
##
## The following object is masked from 'package:plyr':
##
## here
下一行,如果我在输出的RStudio运行相同的块是
Attaching package: ‘lubridate’
The following object is masked from ‘package:plyr’:
here
> library(knitr)
>
我可能没有马上解决这个问题。我所需要做的就是使用Latex设置一个很好的文档,它可以编译我的R脚本中的零碎文件,如果这样做合理,我将编辑它,而不用考虑.tex文档。除了添加正确的标题(## ---- preambule
等)。所以总结一下,我不知道正则表达式的问题来自哪里,我仍然创建一个可以编译的.tex,通过这样做,我发现我得到的输出结果不如在R直接运行脚本,就好像它卡在某处...我天真的想法往往会导致图书馆加载问题。
感谢您的帮助,并致以最诚挚的问候。
更新:而不是'read_chunk'我有复制/粘贴完全相同的代码,并尝试'源()',我最终与winedt具有相同的regexpr错误,但是.tex再次可以编译。 但是,即使是.tex编译,似乎'## ---- section'的执行无法正常工作。如果我通过复制/粘贴实际代码来替换该块,则会生成该图并且一切正常。除了如果我曾经在我的脚本上工作并改变它,我将不得不在我想要的.rnw中再次复制它。 – homer3018 2015-02-06 04:19:32
我得到了使用相同的.rnw文件生成的PDF,但是在RStudio ...因此正则表达式的内容与WinEdt有某种关系。正在取得进展... – homer3018 2015-02-06 04:25:39
即使从你冗长的解释中也无法真正了解你正在做的事情,但是在你提到的那些奇怪的错误的情况下:'traceback()'可能是你的朋友! – 2015-02-06 11:22:11