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