Как показать форматированный вывод R с результатами = 'asis' в rmarkdown - PullRequest
0 голосов
/ 03 октября 2018

Есть ли способ показать вывод форматера R в rmarkdown / knitr при использовании результатов = 'asis'?

Примером может быть следующая функция:

myfun <- function() {
  cat("hello!\n")
  cat(c("one" = 1, "two" = 2))
}

Затем этот блок напечатает второй cat в новой строке:

```{r}
myfun()
```

nice printing

Но при этом будет игнорироваться форматирование из myfun:

```{r, results = "asis"}
myfun()
```

non-formatted printing

Есть лиспособ сохранить results='asis', но в то же время сохранить вывод myfun отформатированным, как предполагалось?

1 Ответ

0 голосов
/ 04 октября 2018

Вы можете использовать опцию knitr chunk results = "asis", если вы готовы добавить два или более пробела в конце строки.То есть вместо "hello\n" вам нужно написать "hello \n", чтобы вызвать разрыв строки.

Пример R Код уценки:

---
output: html_document
---

```{r}
myfun <- function() {
  cat("hello!  \n")
  cat(c("one" = 1, "two" = 2))
}
```

```{r results = "asis"}
myfun()
```

Дает

output on two lines

Почему пробелы?Это потому, что два пробела в конце строки используются для обозначения жесткого разрыва строки в уценке.Например, эта цитата взята из Уценка Пандока (которая используется по умолчанию для уценки R, используемой уценкой R):

Абзацы
Абзац состоит из одной или нескольких строк текстасопровождаемый одной или несколькими пустыми строками.Новые строки обрабатываются как пробелы, поэтому вы можете перекомпоновывать абзацы по своему усмотрению.Если вам нужен разрыв строки, поместите два или более пробела в конце строки.

...