Pra*_*ani 7 latex r noweb beamer sweave
假设我有一个.Rnw包含通常的LaTex与R代码块混合的文件.(我对转换.Rnw幻灯片文档特别感兴趣,但这个问题适用于任何.Rnw文档).现在我想将其转换为包含所有R代码的文件,以及通常由LaTex生成的所有文本,作为R注释.换句话说,我想要的功能类似于什么Stangle(),但我也希望LaTex的所有文本部分转换为在生成的.R文件中注释掉的纯文本.
这将是一种非常方便的方法,可以自动生成一个注释的R文件,该文件很容易在您最喜欢的语法高亮编辑器(例如emacs)中查看.对于一篇只有一点R代码的长篇文章来说,这听起来可能不是一个好主意,但是当.Rnw文档实际上是幻灯片演示文稿(例如使用beamer)时它开始看起来很吸引人- 然后是文本部分的文本部分.幻灯片可以为R代码做出完美的评论.
任何人对如何做到这一点都有任何想法?提前致谢.
这是一种使用方法regex.仍然存在一些问题,我将保留一份将用决议更新的清单.
# READ LINES FROM RNW FILE
lines <- readLines('http://users.stat.umn.edu/~charlie/Sweave/foo.Rnw')
# DETECT CODE LINES USING SWEAVE CHUNK DEFINITIONS
start_chunk <- grep("^<<.*=$", lines)
end_chunk <- grep("^@" , lines)
r_lines <- unlist(mapply(seq, start_chunk + 1, end_chunk - 1))
# COMMENT OUT NON CODE LINES AND WRITE TO FILE
lines[-r_lines] <- paste("##", lines[-r_lines])
writeLines(lines, con='codefile.R')
Run Code Online (Sandbox Code Playgroud)
问题依然存在:
<<chunk_name>>