Подтвердить что ты не робот

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

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

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

---
output: html_document
---

'''{r}
head(cars)
'''

enter image description here

4b9b3361

Ответ 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)
'''

Ответ 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:

    Welch Two Sample t-test 

данные: 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 = "\n\n")
    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 result

PDF и HTML

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

'''r
tidyPrint <- function(data) {
    content <- paste0(data,collapse = "\n\n")
    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 Result in the mixed version

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