gpt4 book ai didi

r - knitr:在 Rmd 文档中编织单独的 Rnw 文档

转载 作者:行者123 更新时间:2023-12-04 21:16:43 25 4
gpt4 key购买 nike

我有一个主 R Markdown 文档 (Rmd),我想在其中 knit几个 单独的其中一个 block 中的 Rnw 文档(无子文档)。但是,当我调用 knit在 Rnw 文档上,包含的 R 代码块似乎没有被处理,导致尝试运行时出错 texi2pdf在他们。

情况说明:

内主。 rmd :

```{r my_chunk, echo=FALSE, message=FALSE, results='asis'}

... some code ...

knit("sub.**Rnw**", output = ..., quiet = TRUE)

tools::texi2pdf(tex_file)

... some code ...


```

是否需要一些额外的配置才能使这个场景工作?

最佳答案

有几个原因你不能直接做你想做的事(在 knit 环境中调用 knit)...

  • 针织图案已经设置好了。
    [在这种情况下, Markdown 模式,因此您需要将模式设置为“rnw”模式。 ]
  • 解析 block (在设置正确的模式之后)会将 block 标签添加到现有的索引中,因此除非所有 block 都是唯一的,否则您将收到重复的 block 标签错误。
    [这就是 knit_child 存在的原因。 ]
  • 输出目标和其他选项已经设置好,因此您要么需要一个全新的 knitr 环境,要么保存、修改、恢复所有相关选项。

  • 话虽如此,这似乎是完全预期的行为。

    类似的东西
    library(knitr)

    files <- list.files( pattern = "*.Rnw", path = ".")
    files

    ## [1] "test_extB.Rnw" "test_ext.Rnw"

    for( f in files ) {
    system( paste0("R -e \"knitr::knit2pdf('", f, "')\"") )
    }

    list.files( pattern="*.pdf", path=".")

    ## [1] "test_extB.pdf" "test_ext.pdf"

    或调用 Rscript在一个循环中应该可以解决问题(基于提供的信息),这基本上是@kohske 在评论中表达的内容。

    关于r - knitr:在 Rmd 文档中编织单独的 Rnw 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21688250/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com