B.1 knitr

El paquete knitr fue diseñado basado en la idea de “programación literaria” (Knuth 1984), que le permite combinar código de programa con el texto en un documento de origen. Cuando knitr compila un documento, el código del programa (en chunks) se extrae y se ejecuta, y la salida del programa se muestra junto con el texto original en el documento de salida. Se ha introducido la sintaxis básica de la sección 2.3.

R Markdown no es el único formato de origen que knitr soporta. La idea básica se puede aplicar a otros idiomas de computación y de creación. Por ejemplo, knitr también es compatible con la combinación de R y látex (documentos *.Rnw), y R + HTML (*.Rhtml), etc. Se pueden utilizar otros lenguajes de computación con knitr, como C++, Python, SQL, etc. A continuación se muestra un ejemplo sencillo y se puede ver más en http://rmarkdown.rstudio.com/authoring_knitr_engines.html.

```{python}
x = 'Hello, Python World!'
print(x.split(' '))
```

Los usuarios de Python pueden estar familiarizados con los portátiles IPython o Jupyter (https://jupyter.org). De hecho, R Markdown también se puede utilizar como notebooks, y tiene algunos beneficios adicionales; Vea esta entrada del blog para más información: https://blog.rstudio.org/2016/10/05/r-notebooks/.

Si desea mostrar un fragmento literal de chunk en su documento, se puede añadir una expresión en línea que genera una cadena vacía (`r ''`) antes de la cabecera del chunk, y sangrar el trozo de código cuatro espacios,13 e.g.,

    `r ''````{r}
    # a literal code chunk
    ```

Después de que se compila el documento, la expresión en línea desaparecerá y se verá:

```{r}
# a literal code chunk
```

Normalmente no es necesario llamar directamente funciones knitr al compilar un documento, ya que rmarkdown llamará knitr. Si desea compilar un documento de origen sin la conversión a otros formatos, es posible utilizar la función knitr::knit).

Referencias

Knuth, Donald E. 1984. “Literate Programming.” The Computer Journal 27 (2). British Computer Society: 97–111.


  1. Sigue la regla de cuatro espacios si el chunk literal se muestra en otros entornos como una lista: http://pandoc.org/MANUAL.html#the-four-space-rule