R、 knitr和源函数:如何为html报告保留源文件注释
R控制台:当我调用R、 knitr和源函数:如何为html报告保留源文件注释,r,knitr,R,Knitr,R控制台:当我调用源(“file\u of_functions.R”,echo=TRUE)时,所有源文件表达式,包括注释,都会打印到控制台 Knit HTML:当我将源代码(“file\u of_functions.R”,echo=TRUE)放在一个块中并编织成HTML时,除了注释之外,输出的内容是相同的 为了使我的代码和报告更清晰,我希望源文件的注释包含在html报告中 有什么建议吗 基本示例:将以下内容保存为f.R: # function to add a number to itself
源(“file\u of_functions.R”,echo=TRUE)
时,所有源文件表达式,包括注释,都会打印到控制台
Knit HTML:当我将源代码(“file\u of_functions.R”,echo=TRUE)
放在一个块中并编织成HTML时,除了注释之外,输出的内容是相同的
为了使我的代码和报告更清晰,我希望源文件的注释包含在html报告中
有什么建议吗
基本示例:将以下内容保存为f.R:
# function to add a number to itself
f <- function(x) x+x
f(2)
当编织到html时,调用
```{r}
source("f.R",echo=TRUE)
```
产生相同的输出,但没有注释。test.Rmd
---
output: html_document
---
```{r}
options(prompt = '> ')
```
```{r}
source('./test.r', echo = TRUE)
```
```{r}
source('./test.r', echo = TRUE, keep.source = TRUE)
```
我并不想将此作为答案发布,但我只想指出一种可能性,即您可以使用
```{r code=readLines('test.r')}
```
就个人而言,我认为这比使用
source()
要好得多,例如,默认情况下,您不会得到提示
(如果需要,您可以),并且R代码将被语法高亮显示。当然,您的评论将被保留。source(…,keep.source=TRUE
)有效吗?这个答案很有效。为了其他有同样问题的人,请注意下面@Yihui的优雅解决方案。这非常有用。两个问题:(1)这仍然是你推荐的方法吗?(2) 也许它应该出现在官方文件中?(也许是的。对2.请随时点击编辑按钮(在我的任何网页上)提出对文档的任何更改:从2020年3月12日起,如果您不想评估代码,您似乎必须添加eval=FALSE
标志。可能这个行为已经出现在knitr的早期版本中了…@Mikko它一直都是这个行为(因为eval=TRUE
是默认值)。
```{r code=readLines('test.r')}
```