使用 knitr 有条件地插入 Child

Conditionally insert Child using knitr

我正在尝试将 children 插入 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

有没有办法有条件地输入一个child?

怎么样

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

?