使用编织器有条件地插入Child

时间:2018-07-26 13:03:09

标签: r latex rstudio knitr sweave

我正在尝试将孩子插入main.Rnw,如下所示:

<<child = here("child.Rnw") >>=
@

问题在于,child.Rnw并不总是必需的。因此,我想检查文件是否存在-如果存在,则应将其插入,否则什么也不做。

我尝试了以下操作:

# 1
\IfFileExists{./child.Rnw}{
    \Sexpr{knit_child(here("child.Rnw"))}
}{}

# 2 Try 
\iftrue\Sexpr{file.exists(here("Demofiles","Demopart.Rnw"))}{
    \Sexpr{knit_child(here("Demofiles","Demopart.Rnw"))}
}{} 

如果文件存在,这两种方法都可以,但是在编译PDF时将其删除会出现以下错误:

Error in readLines(if (is.character(input2))

输出显示以下内容:

'child.Rnw' No such file or directory

有没有办法有条件地输入孩子?

1 个答案:

答案 0 :(得分:1)

\Sexpr{if(file.exists("child.Rnw")) knit_child("child.Rnw")}