knitr中的R stitch被看起来像块标签的注释弄糊涂了

knitr中的R stitch被看起来像块标签的注释弄糊涂了,r,knitr,R,Knitr,我正在使用R中knitr包中的stitch函数为我的学生创建R代码的html文件作为示例 我有几百个R脚本,并且正在自动化创建html页面的过程 但是,如果我的R脚本包含注释行,例如 ##------范例------ 然后,stitch函数认为这是代码块的标签,通常会删除脚本的其他部分 有没有办法在stitch()函数中关闭分块,以便按原样传递所有代码? 我已经查看了stitch()和read_chunk()的内部代码,似乎看不出它如何知道##------示例------是块标签 下面是一个简单

我正在使用R中knitr包中的stitch函数为我的学生创建R代码的html文件作为示例

我有几百个R脚本,并且正在自动化创建html页面的过程

但是,如果我的R脚本包含注释行,例如

##------范例------

然后,stitch函数
认为这是代码块的标签,通常会删除脚本的其他部分

有没有办法在
stitch()
函数中
关闭
分块,以便按原样传递所有代码?
我已经查看了
stitch()
read_chunk()
的内部代码,似乎看不出它如何知道
##------示例------
是块标签

下面是一个简单的工作示例:R3.0.1;knitr 1.4.1

# Test out problem with stitch in knitr

my.code <- "# This a sample of R code
x <- 1:10
print(x)
plot(x,x)

## ---------------- Example  -----
# Notice that only this part of the code appears in the html file.
x <- 10:30
print(x)
plot(x,x)

NULL
"

writeLines(my.code, con='R.code')

library(knitr)
stitch("R.code", system.file("misc", "knitr-template.Rhtml", package = "knitr"))
#测试针法中存在的问题
my.code这是knitr 1.3中的一个新功能:
#------
在使用
读取块()时,将被视为块头的标记

如果不需要此功能,则可以在
之后使用少于4个破折号,例如

## --- Example ----
## -- Example ----
## Example ----
我假设您有这样的注释是为了RStudio代码部分,这要求在部分标题的末尾至少有四个破折号


然后,您需要开发版本来完全解决此问题。

一个可能的解决方法是预处理文件并更改字符,以便
stitch
不会试图解释这些行:

以下代码:

require(gsubfn)

tmp <- readLines('example1.R')

gsubfn("(-+)( *Example *)(-+)", function(one,two,three) {
    paste0( paste( rep('=', nchar(one)), collapse='' ),
        two,
        paste( rep('=', nchar(three)), collapse='' ) ) },
    tmp)

writeLines(tmp, 'example1.R')
require(gsubfn)

嗯。。。我不知道这个新功能。。。注释只是遗留代码(早于Rstudio!),在我的示例中用于描述代码的各个部分。在我上面的示例中,有4个以上的破折号,它仍然将其作为块标签拾取。感谢您在1.4.6版本中修复此问题。卡尔。