【问题标题】:Suppress list notation in Rmarkdown from lapply从 lapply 抑制 Rmarkdown 中的列表符号
【发布时间】:2019-01-22 01:49:31
【问题描述】:

我正在使用 Rmarkdown 生成报告。其中一个步骤包括使用 lapply() 和一个生成绘图的函数,以便生成多个绘图。该函数和 lapply 运行良好,但我得到了关于每个图之间列表中哪个元素的符号。

knitr::opts_chunk$set(echo = TRUE)
library(tidyverse)

#{r pressure, echo=FALSE}
myPlotFun <- function(z){
      diamonds %>%
            filter(color == !!z) %>%
            ggplot(aes(x= carat, y = price))+
            geom_point()
}
myList <- c("E","D","H")
lapply(myList, myPlotFun)

我得到:

'## [1]

`##

`## [2]

如何在图之间隐藏列表符号(例如## [2])行? 使用 include = FALSE 隐藏了图和列表符号,这不是我想要的。我试过warning = FALSE,但这没有帮助。

【问题讨论】:

    标签: r r-markdown lapply


    【解决方案1】:

    这些数字是来自lapply 的人工制品。删除它们的最简单方法是改用for 循环。否则,您可以创建一个钩子来删除除绘图之外的任何其他输出:

    ```{r}
    def <- knitr::knit_hooks$get("output")
    knitr::knit_hooks$set(output = function(x, options) {
      x <- def(x, options)
      ifelse(!is.null(options$suppress), gsub(pattern = "```.*```", "", x), x)
    })
    ```
    

    只需为相关块设置suppress = T

    【讨论】:

    • 这很好用,但我如何控制何时影响输出?似乎它正在影响所有后续块,我将如何关闭此功能以便我可以在报告中包含一个表格作为输出?谢谢
    • 我以为你会回击我:P 我会更新它。
    • 修改后效果很好。谢谢
    猜你喜欢
    • 2017-08-08
    • 2021-08-30
    • 1970-01-01
    • 2021-09-07
    • 1970-01-01
    • 2023-03-21
    • 2021-12-30
    • 1970-01-01
    • 2017-08-03
    相关资源
    最近更新 更多