【问题标题】:Create Rmd files dynamically based on inputs to function根据函数的输入动态创建 Rmd 文件
【发布时间】:2013-07-26 11:53:30
【问题描述】:

我想动态创建和编织.Rmd 文件并在浏览器中显示分析输出。我正在使用knitrknit2html 来执行此操作。目前我正在使用以下方法:

myHTMLsummary <- function(data,x) {

  con <- paste0(getwd(),"/myHTMLSummary.Rmd")
  writeLines ("

Data frame summary
========================================================

Summary:
```{r,echo=FALSE}
summary(data[x])
```",con)

  knit2html(con,quiet=TRUE)

  if (interactive()) browseURL(paste0(getwd(),"/myHTMLSummary.html"))  
}

myHTMLsummary(iris,"Sepal.Length")

有没有更好的方法来动态创建和编织.Rmd 文件,或者这是任何人都在使用的方法?

注意:在 Rstudio 中使用 HTML 输出选项卡直接显示此类功能的结果(而不是在外部浏览器中)会非常酷。也许有人知道如何将结果发送到帮助选项卡?

【问题讨论】:

标签: r knitr rstudio


【解决方案1】:

也许这不是一个很好的例子——我不认为writeLines() 在这里有用。我的意思是内容其实是一个固定的字符串,那为什么不提前把它保存到myHTMLSummary.Rmd呢?那么你只需要

myHTMLsummary <- function(data, x) {
  knit2html("myHTMLSummary.Rmd", quiet=TRUE)
  if (interactive()) browseURL(file.path(getwd(), "myHTMLSummary.html"))  
}

myHTMLsummary(iris, "Sepal.Length")

我认为您真正的意思是动态构建代码块,即源文档的内容不固定。在这种情况下,请参阅 knitr-examples 存储库中的示例 075 和 021。请注意,它们不是唯一的方法。您可以使用任何字符串操作策略来创建您的源文档。

关于 RStudio 问题,您将拥有file a feature request 给它的开发人员。目前,我认为在 RStudio 中预览任意 HTML 文档是不可能的。

【讨论】:

    猜你喜欢
    • 2019-09-29
    • 1970-01-01
    • 1970-01-01
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    • 2020-02-01
    相关资源
    最近更新 更多