Подавить нотацию списка в Rmarkdown от lapply - PullRequest
0 голосов
/ 22 января 2019

Я использую 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 ]

plot1 `##

`## [ 2 ]

plot2

Как скрыть обозначение списка (например, ## [ 2 ]) линии между участками?использование include = FALSE скрывает как графики, так и нотацию списка, что мне не нужно.Я попробовал предупреждение = ЛОЖЬ, но это не помогает.

1 Ответ

0 голосов
/ 22 января 2019

Эти цифры являются артефактами от 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 для соответствующих кусков.

...