> 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/fi/taidot/r-koodi-knitr.md).

# R-koodi (knitr)

Overleaf tarjoaa integraation **knitrin**, jonka avulla voit lisätä R-koodia LaTeX-dokumenttiisi luodaksesi dynaamisen tulosteen.

R-koodia sisältävät dokumentit on tallennettava tiedostopäätteellä `.Rtex` tai `.Rnw`, muuten koodi ei toimi. Katsotaan esimerkki:

{% code overflow="wrap" %}

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

Voit kirjoittaa R-komentoja \LaTeX{}-dokumenttiisi, ne käsitellään ja niiden tuloste sisällytetään dokumenttiin:

<<>>=
# Luo numerosarja
X = 2:10

# Näytä perustason tilastolliset tunnusluvut
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)

[Avaa tämä `knitrin` esimerkki Overleafissä](https://www.overleaf.com/project/new/template/20421?id=69881107\&templateName=Knitr+demo+1\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Kuten näet, merkkien `<<>>=` ja `@` välissä oleva teksti on R-koodia. Tämä koodi ja sen tuloste tulostetaan listauksen kaltaisessa muodossa. Tämä koodilohko voi ottaa joitakin lisäparametreja dynaamisen tulosteen mukauttamiseksi, kuten seuraavassa osiossa kuvataan.

### Koodilohkot

Edellisessä osiossa esitetyn kaltainen koodilohko kutsutaan yleensä *lohkoksi*. Voit asettaa joitakin lisäasetuksia knitr-lohkoihin. Katso alla oleva esimerkki:

{% code overflow="wrap" %}

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

Voit kirjoittaa R-komentoja \LaTeX{}-dokumenttiisi, ne käsitellään ja niiden tuloste sisällytetään dokumenttiin:

<<echo=FALSE, cache=TRUE>>=
# Luo numerosarja
X = 2:10

# Näytä perustason tilastolliset tunnusluvut
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)

[Avaa tämä `knitrin` esimerkki Overleafissä](https://www.overleaf.com/project/new/template/20423?id=69885763\&templateName=Knitr+demo+2\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Sisällä on kaksi lisäasetusta `<<` ja `>>`.

* `echo=FALSE`Tämä piilottaa koodin ja tulostaa vain R:n tuottaman tulosteen.
* `cache=TRUE`Jos cache on asetettu arvoon true, lohkoa ei ajeta, vaan vain sen tuottamat oliot. Tämä säästää aikaa, jos kyseisen lohkon tiedot eivät ole muuttuneet.

  <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p><em>Huomaa, että cache=TRUE-asetusta ei tällä hetkellä tueta Overleafissä, mutta sen pitäisi toimia paikallisesti.</em></p></div>

Katso [viiteopasta](https://learn.overleaf.com/learn/Knitr#Reference_guide) lisäasetuksia varten.

### Rivikomennot

On mahdollista käyttää lohkossa tuotettuja olioita ja tulostaa ne rivin sisällä.

{% code overflow="wrap" %}

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

Voit kirjoittaa R-komentoja \LaTeX{}-dokumenttiisi, ne käsitellään ja niiden tuloste sisällytetään dokumenttiin:

<<echo=FALSE, cache=TRUE>>=
# Luo numerosarja
X = 2:10

# Näytä perustason tilastolliset tunnusluvut
summary(X)

@

Joten datan keskiarvo on $\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)

[Avaa tämä `knitrin` esimerkki Overleafissä](https://www.overleaf.com/project/new/template/20425?id=69886866\&templateName=Knitr+demo+3\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Komento `\Sexpr{mean(X)}` tulostaa R-koodin `mean(X)`palauttaman tulosteen. Aaltosulkeiden sisään voi antaa minkä tahansa R-komennon.

### Piirrokset

Myös piirroksia voidaan lisätä knitr-dokumenttiin, kuten tässä esimerkissä:

{% 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")

@

Kuva \ref{fig:plot1} on yksinkertainen histogrammi.

\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)

[Avaa tämä `knitrin` esimerkki Overleafissä](https://www.overleaf.com/project/new/template/20427?id=69890965\&templateName=Knitr+demo+3\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Tämä histogrammi käyttää dataa tiedostosta "data.txt", joka on tallennettu nykyiseen työhakemistoon. Lohkolle annetaan muutamia kuvaan liittyviä asetuksia.

`plot1`Tämä on tunniste, jota käytetään viitattaessa kuvaajaan. Etuliite "fig:" on pakollinen. Näet esimerkistä, että kuvaan viitataan `\ref{fig:plot1}`.`fig.pos="t"` sijoitteluparametri. Tätä käytetään samoin kuin [kuvaympäristössä](https://learn.overleaf.com/learn/Positioning_images_and_tables#The_figure_environment).`fig.height=4, fig.width=4`Kuvan leveys ja korkeus.`fig.cap="First plot"`Kuvan kuvateksti.

### Ulkoiset R-skriptit

Voit tuoda osia ulkoisesta R-skriptistä knitr-dokumenttiin. Tämä on erittäin hyödyllistä, koska skriptin kirjoittaminen ja virheenkorjaus ulkoisessa ohjelmassa ennen sen sisällyttämistä dokumenttiin on varsin tavallista.

Oletetaan, että meillä on seuraava R-koodi tiedostossa nimeltä `mycode.R` jonka sisällytämme LaTeX-dokumenttiimme:

```r
## ---- myrcode1
# Luo numerosarja
 X = 2:10

## ---- myrcode2
# Näytä perustason tilastolliset tunnusluvut
summary(X)
```

Huomaa rivit:

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

ja

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

Ne merkitsevät koodilohkon alkua ja ovat pakollisia, jos haluat käyttää tätä skriptiä dokumentissamme, kuten seuraavassa koodikatkelmassa näytetään:

```r
Alla olevaa lohkoa ei tulosteta

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

Koodin pitää näkyä tässä

<<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)

Ensimmäistä lohkoa ei tulosteta, ja sitä käytetään vain skriptin tuomiseen komennolla `read_chunk("mycode.R")` . Siksi asetuksena `echo=FALSE` on määritetty. Lisäksi skriptejä ei saa välimuistittaa. Kun skripti on tuotu, voit tulostaa lohkon käyttäen tunnistetta, jonka asetit perään `## ----`. Tässä tapauksessa se on `myrcode2`.

Olemme koonneet kaikki artikkelin koodikatkelmat projektiin, jonka [voit avata Overleafissä](https://www.overleaf.com/project/new/template/20429?id=69894649\&templateName=Knitr+full+demo\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=) .

### Viiteopas

Joitakin lohkoasetuksia:

* `results`. Muuttaa R-koodin tuottamien tulosten käyttäytymistä. Mahdolliset arvot ovat:
  * `markup` Käytä LaTeXia tulosteen muotoiluun.
  * `asis` Tulosta R:n raakatulokset.
  * `hold` Pidä tulostetut tulokset ja siirrä ne lohkon loppuun.
  * `hide` Piilota tulokset.
* `echo`. Sisällytetäänkö R-lähdekoodi. Muita parametreja ovat:
  * `echo=2:3` tulostaa vain toisen ja kolmannen rivin;
  * `echo=-2:-3` jättää pois vain toisen ja kolmannen rivin.
* `cache`. Käytetäänkö koodilohkon välimuistia. Mahdolliset arvot ovat: `TRUE` ja `FALSE`
* `highlight`. Korostetaanko lähdekoodi. Mahdolliset arvot ovat: `TRUE` ja `FALSE`
* `background`. Lohkon taustaväri. Voidaan käyttää rgb- ja HTML-muotoja. Oletusarvo on *"#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/fi/taidot/r-koodi-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.
