> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/texlive/es/habilidades/codigo-r-knitr.md).

# Código R (knitr)

Overleaf ofrece una integración con **knitr**, lo que le permite añadir código R a su documento LaTeX para generar una salida dinámica.

Los documentos que contienen código R deben guardarse con la extensión `.Rtex` o `.Rnw`, de lo contrario el código no funcionará. Veamos un ejemplo:

{% code overflow="wrap" %}

```latex
\documentclass{article}
\begin{document}

Puede escribir comandos R en su documento \LaTeX{} que se procesarán y cuya salida se incluirá en el documento:

<<>>=
# Crear una secuencia de números
X = 2:10

# Mostrar medidas estadísticas básicas
summary(X)

@
\end{document}
```

{% endcode %}

![KnitrDemo1.png](https://3502988919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVetOkhFZmAC8QCQK0Pi7%2Fuploads%2F4rB1ItV9jgLU4dT6o3Hf%2FKnitrDemo1.png?alt=media\&token=5b2d4df8-8de9-4bdd-be61-0a3992026edf)

[Abrir este `knitr` ejemplo en Overleaf](https://www.overleaf.com/project/new/template/20421?id=69881107\&templateName=Knitr+demo+1\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Como puede ver, el texto entre los caracteres `<<>>=` y `@` es código R. Este código y su salida se imprimen en un formato similar al de un listado. Este bloque de código puede tomar algunos parámetros adicionales para personalizar la salida dinámica, como se describe en la siguiente sección.

### Bloques de código

Un bloque de código como el presentado en la sección anterior suele llamarse un *chunk*. Puede configurar algunas opciones adicionales en los chunks de knitr. Vea el ejemplo siguiente:

{% code overflow="wrap" %}

```latex
\documentclass{article}
\begin{document}

Puede escribir comandos R en su documento \LaTeX{} que se procesarán y cuya salida se incluirá en el documento:

<<echo=FALSE, cache=TRUE>>=
# Crear una secuencia de números
X = 2:10

# Mostrar medidas estadísticas básicas
summary(X)

@
\end{document}
```

{% endcode %}

![KnitrDemo2.png](https://3502988919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVetOkhFZmAC8QCQK0Pi7%2Fuploads%2FHtobrK1TjY4SG4ax2BH5%2FScreenshot%202025-12-16%20143420.png?alt=media\&token=50675660-f20f-44d3-be60-fb91b8dbd255)

[Abrir este `knitr` ejemplo en Overleaf](https://www.overleaf.com/project/new/template/20423?id=69885763\&templateName=Knitr+demo+2\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Hay dos opciones adicionales pasadas dentro de `<<` y `>>`.

* `echo=FALSE`Esto oculta el código y solo imprime la salida generada por R.
* `cache=TRUE`Si cache se establece en true, el chunk no se ejecuta, solo los objetos generados por él. Esto ahorra tiempo si los datos de ese chunk no han cambiado.

  <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p><em>Tenga en cuenta que la opción cache=TRUE no es compatible actualmente en Overleaf, pero debería funcionar localmente.</em></p></div>

Consulte la [guía de referencia](https://learn.overleaf.com/learn/Knitr#Reference_guide) para ver más opciones.

### Comandos en línea

Es posible acceder a los objetos generados en un chunk e imprimirlos en línea.

{% code overflow="wrap" %}

```latex
\documentclass{article}
\begin{document}

Puede escribir comandos R en su documento \LaTeX{} que se procesarán y cuya salida se incluirá en el documento:

<<echo=FALSE, cache=TRUE>>=
# Crear una secuencia de números
X = 2:10

# Mostrar medidas estadísticas básicas
summary(X)

@

Entonces, la media de los datos es $\Sexpr{mean(X)}$
\end{document}
```

{% endcode %}

![KnitrDemo3.png](https://3502988919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVetOkhFZmAC8QCQK0Pi7%2Fuploads%2Fbyz9VKDCCPcoWHbznSJ4%2FScreenshot%202025-12-16%20143647.png?alt=media\&token=9d5ef4de-f413-4bf2-83c8-bf2171f50dee)

[Abrir este `knitr` ejemplo en Overleaf](https://www.overleaf.com/project/new/template/20425?id=69886866\&templateName=Knitr+demo+3\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

El comando `\Sexpr{mean(X)}` imprime la salida devuelta por el código R `mean(X)`. Dentro de las llaves, se puede pasar cualquier comando R.

### Gráficos

También se pueden añadir gráficos a un documento knitr, como en este ejemplo:

{% code overflow="wrap" %}

```latex
\documentclass{article}
\begin{document}

<<plot1, fig.pos="t", fig.height=4, fig.width=4, fig.cap="First plot">>=

xdata = read.csv(file="data.txt", head=TRUE,sep=" ")

hist(xdata$data, main="Overleaf histogram", xlab="Data")

@

La figura \ref{fig:plot1} es un histograma simple.

\end{document}
```

{% endcode %}

![KnitrDemo4.png](https://3502988919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVetOkhFZmAC8QCQK0Pi7%2Fuploads%2F5NI4NOJICjnYf8Z2Me1b%2FScreenshot%202025-12-16%20143811.png?alt=media\&token=d937786f-da22-4cbd-9adf-f277ec9f77c4)

[Abrir este `knitr` ejemplo en Overleaf](https://www.overleaf.com/project/new/template/20427?id=69890965\&templateName=Knitr+demo+3\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Este histograma usa datos almacenados en "data.txt", guardados en el directorio de trabajo actual. Se pasan algunas opciones relacionadas con la figura al chunk.

`plot1`Esta es la etiqueta usada para referenciar el gráfico. El prefijo "fig:" es obligatorio. Puede ver en el ejemplo que la figura se referencia con `\ref{fig:plot1}`.`fig.pos="t"` parámetro de posicionamiento. Es el mismo que se usa en [el entorno de figura](https://learn.overleaf.com/learn/Positioning_images_and_tables#The_figure_environment).`fig.height=4, fig.width=4`Ancho y alto de la figura.`fig.cap="First plot"`Pie de figura.

### Scripts R externos

Puede importar partes de un script R externo en un documento knitr. Esto es muy útil, ya que es bastante común escribir y depurar el script en un programa externo antes de incluirlo en su documento.

Supongamos que tenemos el siguiente código R en un archivo llamado `mycode.R` que incluimos en nuestro documento LaTeX:

```r
## ---- myrcode1
# Crear una secuencia de números
 X = 2:10

## ---- myrcode2
# Mostrar medidas estadísticas básicas
summary(X)
```

Observe las líneas:

```r
## ---- myrcode1
```

y

```r
## ---- myrcode2
```

Estas marcan el inicio de un chunk de código y son obligatorias si desea usar este script en nuestro documento, como se muestra en el siguiente fragmento de código:

```r
El chunk siguiente no se imprimirá

<<echo=FALSE, cache=FALSE>>=
read_chunk("mycode.R")
@

El código debe mostrarse aquí

<<myrcode2>>=

@
```

![KnitrDemo5.png](https://3502988919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVetOkhFZmAC8QCQK0Pi7%2Fuploads%2FPzKSGsFTMdhs9K8dE8Ny%2FKnitrDemo5.png?alt=media\&token=9c32c381-7621-4b7d-9d73-c1e7a0b6aac8)

El primer chunk no se imprime y solo se usa para importar el script con el comando `read_chunk("mycode.R")` . `echo=FALSE` Por eso la opción `## ----`se establece. Además, los scripts no deben almacenarse en caché. Una vez importado el script, puede imprimir un chunk usando la etiqueta que estableció después de `myrcode2`.

Hemos puesto todos los fragmentos de código del artículo en un proyecto que [puede abrir en Overleaf](https://www.overleaf.com/project/new/template/20429?id=69894649\&templateName=Knitr+full+demo\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=) .

### Guía de referencia

Algunas opciones de chunk:

* `results`. Cambia el comportamiento de los resultados generados por el código R. Los valores posibles son:
  * `markup` Use LaTeX para formatear la salida.
  * `asis` Imprima los resultados sin procesar de R.
  * `hold` Retenga los resultados de salida y envíelos al final del chunk.
  * `hide` Ocultar resultados.
* `echo`. Indica si se incluye el código fuente R. Otros parámetros incluyen:
  * `echo=2:3` imprime solo las segunda y tercera líneas;
  * `echo=-2:-3` excluye solo la segunda y tercera líneas.
* `cache`. Indica si se almacena en caché el bloque de código. Los valores posibles son: `TRUE` y `FALSE`
* `highlight`. Indica si se resalta el código fuente. Los valores posibles son: `TRUE` y `FALSE`
* `background`. Color de fondo del chunk. Se pueden usar formatos RGB y HTML. El valor predeterminado es *"#F7F7F7"*.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/texlive/es/habilidades/codigo-r-knitr.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
