RMarkdown - O que significa o chunk option 'results'?

Essa dúvida foi recebida no curso de Relatórios e visualização de dados:

Não entendi o que faz essas opções de result’s:

results=‘markup’

```{r results='markup'}
knitr::kable(head(cars))
```

results=‘asis’

```{r results='asis'}
knitr::kable(head(cars))
```

results=‘hold’

```{r results='hold'}
knitr::kable(head(cars))
```

results=‘hide’

```{r results='hide'}
knitr::kable(head(cars))
```

O results controla como os resultados de texto serão apresentados. A resposta para alguns destes estão no site do Yihui, criador do pacote knitr.

Os exemplos enviados não vão mostrar nenhuma diferença pois não geram resultados em texto (e sim tabelas)!

Criei outro exemplo que geram textos (em um dos textos eu adicionei asteriscos para mostrar um exemplo que possibilita interpretar markdown):

```{r}
nomes_pinguins <-
  knitr::combine_words(unique(dados::pinguins$especies),
                       before = "**",
                       after = "**" )
nomes_ilhas <- knitr::combine_words(unique(dados::pinguins$ilha))
```

O results markup é o padrão:

O results que eu mais gosto é o asis. O texto não é mostrado com os ## no começo. Caso o resultado tenha markdown ou html, ele será interpretado!

O results hold irá apresentar os resultados após todos os códigos do chunk (nos exemplos anteriores, o padrão era: código, resultado desse código, outro código, resultado do outro código… e aqui todos os códigos são apresentados juntos, e depois todos os resultados).
Repare que o markdown não foi interpretado!:

O results hide irá esconder o resultado:

Código completo pra testar

---
title: "Exemplo results"
output: html_document
---

Quais são as opções e resultados do parâmetro results=?

Primeiro vamos criar algo para repetir em todos os exemplos!

```{r}
nomes_pinguins <-
  knitr::combine_words(unique(dados::pinguins$especies),
                       before = "**",
                       after = "**" )
nomes_ilhas <- knitr::combine_words(unique(dados::pinguins$ilha))
```

Agora experimentar...

## results='markup'

```{r results='markup'}
nomes_pinguins
nomes_ilhas
```

## results='asis'

```{r results='asis'}
nomes_pinguins
nomes_ilhas
```

## results='hold'

```{r results='hold'}
nomes_pinguins
nomes_ilhas
```

## results='hide'

```{r results='hide'}
nomes_pinguins
nomes_ilhas
```