将knitr chunk保存到R文件

时间:2015-10-29 15:34:43

标签: r knitr

在knitr中有一个read_chunk函数,它将外部代码读入一个块。是否有可能扭转这一过程。也就是说,创建一个函数write_chunk(),将块中的源代码保存到R文件中?文件名可以与块名称相同。

2 个答案:

答案 0 :(得分:4)

我找到了一个使用钩子的解决方案。添加以下钩子:

knit_hooks$set(write_chunk = function(before, options, envir) {
    if (before) {
      fileConn<-file(paste0("chunk_",options$label,".R") )
      writeLines(options$code, fileConn)
      close(fileConn)
    }
})

并在块的标题中使用选项<<chunk-name, write_chunk=TRUE>>

答案 1 :(得分:0)

You can use the following syntax

Stangle(file = "Your_code.Rnw",output="Code.R"):

But this I can prove the following error:

#Error: ‘Your_code.Rnw’ is not ASCII and does not declare an encoding

Adding the following parameter (encoding = "UTF-8"), the coding problem is solved

Stangle("Your_code.Rnw",output="Code.R",encoding="utf8")