Удалить хэши в выходных данных R из R Markdown и Knitr

#r #r-markdown

#r-markdown #knitr

Вопрос:

Я использую RStudio для записи моих файлов R Markdown. Как я могу удалить хэши ( ## ) в конечном выходном файле HTML, которые отображаются перед выводом кода?

В качестве примера:

 ---
output: html_document
---

```{r}
head(cars)
```
  

введите описание изображения здесь

Комментарии:

1. Стоит подумать о назначении хэшей. Они упрощают копирование и вставку кода R из вашего документа в консоль R, поскольку вывод R закомментирован хэшами и поэтому будет проигнорирован.

2. Вы также можете command shift c на Mac или control shift c на ПК удалить хэштеги, если вам нужно

Ответ №1:

Вы можете включить в свои параметры фрагмента что-то вроде

 comment=NA # to remove all hashes
  

или

 comment='%' # to use a different character
  

Дополнительная справка по knitr доступна здесь:http://yihui.name/knitr/options

Если вы используете R Markdown, как вы упомянули, ваш фрагмент может выглядеть следующим образом:

 ```{r comment=NA}
summary(cars)
```
  

Если вы хотите изменить это глобально, вы можете включить фрагмент в свой документ:

 ```{r include=FALSE}
knitr::opts_chunk$set(comment = NA)
```
  

Комментарии:

1. Если вы хотите удалить хэши из всех выходных данных, вы можете установить opts_chunk$set(comment = NA) .

2. И если вы хотите, чтобы результат отображался так, как будто это вообще не код, а обычный текст, вы можете использовать results='asis' , и comment в этом нет необходимости.

3. @Ramnath вам, вероятно, следует упомянуть, что для того, чтобы это сработало, вам нужно добавить library(knitr) в ячейку.

Ответ №2:

Просто HTML

Если ваш вывод — это просто HTML, вы можете эффективно использовать HTML-тег PRE или CODE.

Пример

 ```{r my_pre_example,echo=FALSE,include=TRUE,results='asis'}
knitr::opts_chunk$set(comment = NA)
cat('<pre>')
print(t.test(mtcars$mpg,mtcars$wt))
cat('</pre>')
```
  

Результат HTML:

 Т-образный тест Уэлча с Двумя образцами

данные: mtcars $ mpg и mtcars $ wt t = 15,633, df = 32,633, p-значение < 0,00000000000000022 альтернативная гипотеза: истинная разница в средних не равна 0,95% доверительный интервал: 14,67644 19,07031 выборочные оценки: среднее значение по x, среднее значение по y 20,09062 3,21725

Просто PDF

Если ваши выходные данные в формате PDF, то вам может понадобиться какая-нибудь функция замены. Вот что я использую:

 ```r
tidyPrint <- function(data) {
    content <- paste0(data,collapse = "nn")
    content <- str_replace_all(content,"\t","    ")
    content <- str_replace_all(content,"\ ","\\ ")
    content <- str_replace_all(content,"\$","\\$")
    content <- str_replace_all(content,"\*","\\*")
    content <- str_replace_all(content,":",": ")
    return(content)
  }
```
  

Пример

Код также должен немного отличаться:

 ```{r my_pre_example,echo=FALSE,include=TRUE,results='asis'}
knitr::opts_chunk$set(comment = NA)
resultTTest <- capture.output(t.test(mtcars$mpg,mtcars$wt))
cat(tidyPrint(resultTTest))
```
  

Результат в формате PDF

Результат в формате PDF

PDF и HTML

Если вам действительно нужно, чтобы страница работала в обоих случаях — PDF и HTML, — на последнем шаге tidyPrint должен немного отличаться.

 ```r
tidyPrint <- function(data) {
    content <- paste0(data,collapse = "nn")
    content <- str_replace_all(content,"\t","    ")
    content <- str_replace_all(content,"\ ","\\ ")
    content <- str_replace_all(content,"\$","\\$")
    content <- str_replace_all(content,"\*","\\*")
    content <- str_replace_all(content,":",": ")
    return(paste("<code>",content,"</code>n"))
  }
```
  

Результат

Результат PDF тот же, а результат HTML близок к предыдущему, но с некоторыми дополнительными рамками.

Результат HTML в смешанной версии

Это не идеально, но, возможно, достаточно хорошо.