93 votes

Comment afficher du code mais masquer la sortie dans RMarkdown ?

Je veux que mon fichier html affiche le code, mais pas la sortie de ce chunk:

```{r echo=True, include=FALSE}
fun <- function(b)
    {
    for(a in b)
        {print(a)
        return(a * a)}
    }
y <- fun(b)
```

Quand j'exécute le code, j'ai besoin de voir l'impression pour suivre le progrès (c'est une fonction assez longue en réalité).

Mais dans le fichier knitr, j'utilise la sortie dans un autre chunk, donc je ne veux pas la voir dans celui-ci (et il n'y a pas de notion de progrès, puisque le code a déjà été exécuté).

Ce echo=True, include=FALSE ici ne fonctionne pas: le tout est caché (ce qui est le comportement normal de include=FALSE).

Quels sont les paramètres que je pourrais utiliser pour masquer les impressions, mais montrer mon code?

69 votes

Essayer {r echo=T, results='hide'}

1 votes

Belle, c'est exactement ce que je cherchais! Je n'avais pas vu ce paramètre résultats auparavant

1 votes

Mais comment cacher tout type de sortie ? En utilisant results='hide' affichera toujours des éléments tels que des avertissements, comme lorsqu'un objet est masqué lors de l'utilisation de library(package). Existe-t-il une option pour masquer tout ce qui serait imprimé dans la console ?

3voto

user5783745 Points 1214

Pour complètement silencieux la sortie, voici ce qui fonctionne pour moi

```{r error=FALSE, warning=FALSE, message=FALSE}
invisible({capture.output({

# Votre code ici
2 * 2
# etc etc

})})
```

Les 5 mesures utilisées ci-dessus sont

  1. error = FALSE
  2. warning = FALSE
  3. message = FALSE
  4. invisible()
  5. capture.output()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X