同时运行R标记(check.Rmd)和R knitr(test.Rnw)文件
我有以下问题;有两个大文档,一个写在同时运行R标记(check.Rmd)和R knitr(test.Rnw)文件,r,markdown,knitr,r-markdown,R,Markdown,Knitr,R Markdown,我有以下问题;有两个大文档,一个写在R Markdown(check.Rmd)中,另一个写在R knitr(test.Rnw)中。在第一个文档中,我们有如下代码: \section{Organisations Test} \textbf{Running Organisations Checks} <<CreateOrganisations, echo=FALSE, progress=TRUE, warning=FALSE, eval=TRUE>>= source("O
R Markdown
(check.Rmd)中,另一个写在R knitr
(test.Rnw)中。在第一个文档中,我们有如下代码:
\section{Organisations Test}
\textbf{Running Organisations Checks}
<<CreateOrganisations, echo=FALSE, progress=TRUE, warning=FALSE, eval=TRUE>>=
source("OrganisationsTest.R")
OrganisationsTest(current_schema,server,user,pass)
@
\section{Test}
\textbf{运行组织检查}
=
来源(“组织标准”)
OrganizationStest(当前_架构、服务器、用户、通行证)
@
另一种情况如下:
2. check the downwards shock
```{r chunk_Int_Sh_p2, echo=FALSE}
unique(param.int.shock.tab[SHOCKTYPE=="SHOCK_DOWN"&PERIODEND<21|PERIODEND==90, list( Maturity=PERIODEND, Shock_value=100*SHOCKVALUE)])
```
2。检查向下冲击
```{r chunk_Int_Sh_p2,echo=FALSE}
独特(param.int.shock.tab[SHOCKTYPE==“shock_DOWN”&periondendRStudio按钮“Compile PDF”(用于RNW文档)和“Knit PDF”(用于RMD文档)非常方便,但在类似这种情况下,了解它们的功能非常重要,以便重现相同或类似的行为
总结问题,它需要一种将两个文件(RMD和RNW文档)转换为PDF的方法,最好使用上面提到的两个按钮
不幸的是,(据我所知)不可能在RStudio GUI中添加任何用户定义的按钮。但是编写一个R脚本来编译这两个文档是很简单的
在下文中,我假设有两个文件:
first.Rmd
:
This is a RMD file.
```{r, echo=FALSE}
plot(1)
```
second.Rnw
:
\documentclass{article}
\begin{document}
This is a RNW file.
<<>>=
plot(1)
@
\end{document}
knit
调用从first.Rmd
生成first.md
,在块中执行R代码。render
将生成的标记文件转换为PDF。[注意底部的附录!]
要将first.Rnw
编译为PDF,我们只需使用knit2pdf
:
knit2pdf("second.Rnw")
将这两个代码段复制到一个R脚本中并单击“源代码”尽可能接近“一键解决方案”
但是,请注意,代码片段的功能与“Compile/knit PDF”按钮非常相似,但并不完全相同。“Compile”按钮启动新的R会话,而上述解决方案使用当前会话
- 在执行代码段之前,请确保使用正确的工作目录
- 默认情况下,
knit
和knit2pdf
都使用envir=parent.frame()
。这意味着在调用环境中执行分块的R代码(请参阅)。这可能是一个有用的功能,例如“传递”变量转换为块,但了解它很重要。否则,文档可能在一个会话(调用环境中存在某些变量)中编译良好,但无法在另一个会话中编译(缺少这些变量)。因此,此功能在再现性方面有点危险。作为解决方案,可以使用envir=new.env(parent=As.environment(2))
;有关该主题的更多详细信息,请参阅
我刚刚意识到以下关于渲染:
如果输入需要编织,则在pandoc
之前调用knit
(来源:?渲染
)
因此,knit(input=“first.Rmd”);render(input=“first.md”,output\u format=“pdf\u document”)
可以简化为render(input=“first.Rmd”,output\u format=“pdf\u document”)
。上面的envir
问题knit
也适用于render
。尝试使用类似\input{check.Rmd}的latexinput
命令
在test.Rnw中。你知道函数knit
和knit2pdf
吗?我在理解你在做什么时有些困难,但听起来你只需要一个调用这些函数(或类似函数)的R脚本函数。原则上,它如下:如果您要编译knitr文件,我们有2个文件,您将在RStudio中使用compilePDF
bottom,对于标记文件,您可以在RStudio中使用KnitPDF
bottom,但我们希望将这两个文件放在一起,并在底部单击。这是怎么可能的?上面的键入:“…要将first.Rnw
编译成PDF,我们可以简单地使用…”应该是“…要将second.Rnw
编译成PDF,我们可以简单地使用…”。顺便感谢您的回答。
knit2pdf("second.Rnw")