我经常创建特定的sweave文件来进行分析并生成pdf文档,但是,有时我想采用现有的R脚本文件并运行它,同时生成命令和输出的pdf.我知道有一个纠结命令可以将r命令从rnw sweave文件中拉出来创建一个R脚本,但我希望相反.
编辑:我考虑过创建一个只提供我的R脚本的sweave文件,但是我每次都需要编辑sweave文件,并且它不能很好地处理图形和图形.
所以对于像这样的示例R脚本(伪代码,可能不会运行)
head(mcars)
1+1
x<-3
describe(mcars)
p <- ggplot(mtcars, aes(wt, mpg))
p + geom_point()
print(p)
Run Code Online (Sandbox Code Playgroud)
它会产生
<<echo=TRUE, result=latex>>=
print(xtable(head(mcars)))
@
<<echo=TRUE, include=TRUE>>=
1+1
x<-3
@
<<echo=TRUE, result=latex>>=
print(xtable(describe(mcars)))
@
<<echo=TRUE, fig=TRUE, include=TRUE>>=
p <- ggplot(mtcars, aes(wt, mpg))
p + geom_point()
print(p)
@
Run Code Online (Sandbox Code Playgroud)
有人做过吗?
我有一个knitr正在开发中的软件包可能适合你,但我需要警告你它仍然处于开发的早期阶段,因此可能存在错误.阅读不完整手册中的代码参考部分https://github.com/downloads/yihui/knitr/knitr-manual.pdf
基本上你在Sweave中写一个空块
<<my-chunk-label>>=
@
Run Code Online (Sandbox Code Playgroud)
并在外部R脚本中使用相同的标签(例如foo.R)
## @knitr my-chunk-label
1 + 1; x <- 3
Run Code Online (Sandbox Code Playgroud)
块选项ref用于指定脚本的路径(例如ref=foo.R); knitr将读取R脚本并将标签与Rnw文档匹配.