#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 и 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 близок к предыдущему, но с некоторыми дополнительными рамками.
Это не идеально, но, возможно, достаточно хорошо.