gpt4 book ai didi

r - 使用 knit_expand() 从模板中提取 R 代码

转载 作者:行者123 更新时间:2023-12-04 11:14:50 25 4
gpt4 key购买 nike

我使用 knitr 生成了一个动态文档.该文件使
广泛使用包的knit_expand()功能为
模板。这是由 MWE 说明的(基于 Yihui Xie 自己的
example为函数)。

  • 主文档 knit-expand-MWE.Rnw
    \documentclass{article}

    \title{How to extract code when using\\
    knit\_expand() for templates?}%
    \author{Knitr User}

    \begin{document}

    \maketitle
    \tableofcontents

    \newpage
    \section{Write one row of data}

    Only the first two sections are evaluated.

    <<run-all, include=FALSE>>=
    library(knitr)
    src = NULL
    for (i in 1:3) src = c(src, knit_expand('template.Rnw'))
    @

    \Sexpr{paste(knit(text = src), collapse = '\n')}

    \end{document}
  • 模板template.Rnw由主文件调用
    \subsection{Now i is {{i}}}

    This chunk is {{if (i > 2) 'not '}}evaluated.
    <<row-{{i}}, eval={{i <= 2}}>>=
    # row number {{i}}
    iris[{{i}}, ]
    @

  • 我现在需要提取相应的 R 代码。运行 purl("knit-expand-MWE.Rnw")输出 knit-expand-MWE.R ,其中包含块中的代码以及对模板的引用:
    ## ----run-all, include=FALSE----------------------------------------------
    library(knitr)
    src = NULL
    for (i in 1:3) src = c(src, knit_expand('template.Rnw'))

    我想要的是相应的“扩展”代码(为了不使用 knitr 的同事的利益),例如:
    ## ----row-1, eval=TRUE----------------------------------------------
    ## row number 1
    iris[1, ]

    ## ----row-2, eval=TRUE----------------------------------------------
    ## row number 2
    iris[2, ]

    ## ----row-3, eval=FALSE----------------------------------------------
    ## row number 3
    iris[3, ]

    我怎样才能做到这一点?

    最佳答案

    您可以运行 purl()src ,e。 G。

    purl(text = src, output = 'knit-expand.R')

    关于r - 使用 knit_expand() 从模板中提取 R 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44656046/

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