> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# R-koodi (knitr)

Overleaf tarjoaa integraation **knitr**-työkaluun, jonka avulla voit lisätä LaTeX-dokumenttiisi R-koodia dynaamisen tulosteen tuottamiseksi.

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

```latex wrap theme={null}
\documentclass{article}
\begin{document}

You can type R commands in your \LaTeX{} document which will be processed and their output included in the document:

<<>>=
# Create a sequence of numbers
X = 2:10

# Display basic statistical measures
summary(X)

@
\end{document}
```

<img src="https://mintcdn.com/ayakaleaf-pro/v5p5w9EX1_dka_GD/images/texlive/knitrdemo1.png?fit=max&auto=format&n=v5p5w9EX1_dka_GD&q=85&s=4cd20c6acbeeab2b1ae2b115efece70d" alt="KnitrDemo1.png" width="2150" height="681" data-path="images/texlive/knitrdemo1.png" />

[Avaa tämä `knitr`-esimerkki Overleafissa](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älle koodilohkolle voidaan antaa lisäparametreja dynaamisen tulosteen mukauttamiseksi, kuten seuraavassa osiossa kuvataan.

### Koodilohkot

Edellisessä osiossa esitetyn kaltaista koodilohkoa kutsutaan yleensä nimellä *chunk*. Knitr-lohkoille voi asettaa lisäasetuksia. Katso alla oleva esimerkki:

```latex wrap theme={null}
\documentclass{article}
\begin{document}

You can type R commands in your \LaTeX{} document which will be processed and their output included in the document:

<<echo=FALSE, cache=TRUE>>=
# Create a sequence of numbers
X = 2:10

# Display basic statistical measures
summary(X)

@
\end{document}
```

<img src="https://mintcdn.com/ayakaleaf-pro/v5p5w9EX1_dka_GD/images/texlive/screenshot-2025-12-16-143420.png?fit=max&auto=format&n=v5p5w9EX1_dka_GD&q=85&s=9c79c98b1894d1cd22f783c29356de1f" alt="KnitrDemo2.png" width="1910" height="559" data-path="images/texlive/screenshot-2025-12-16-143420.png" />

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

Merkkien `<<` ja `>>` sisällä annetaan kaksi lisäasetusta.

* `echo=FALSE`Tämä piilottaa koodin ja tulostaa vain R:n tuottaman tulosteen.
* `cache=TRUE`Jos cache on asetettu todeksi, lohkoa ei ajeta, vaan käytetään vain sen tuottamia objekteja. Tämä säästää aikaa, jos lohkon data ei ole muuttunut.

  <Info><em>Huomaa, että cache=TRUE-asetusta ei tällä hetkellä tueta Overleafissa, mutta sen pitäisi toimia paikallisesti.</em></Info>

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

### Tekstinsisäiset komennot

Lohkossa luotuja objekteja voi käyttää ja tulostaa tekstin sisällä.

```latex wrap theme={null}
\documentclass{article}
\begin{document}

You can type R commands in your \LaTeX{} document which will be processed and their output included in the document:

<<echo=FALSE, cache=TRUE>>=
# Create a sequence of numbers
X = 2:10

# Display basic statistical measures
summary(X)

@

So, the mean of the data is $\Sexpr{mean(X)}$
\end{document}
```

<img src="https://mintcdn.com/ayakaleaf-pro/v5p5w9EX1_dka_GD/images/texlive/screenshot-2025-12-16-143647.png?fit=max&auto=format&n=v5p5w9EX1_dka_GD&q=85&s=8b59926a477373b2787f884267d7c263" alt="KnitrDemo3.png" width="1910" height="630" data-path="images/texlive/screenshot-2025-12-16-143647.png" />

[Avaa tämä `knitr`-esimerkki Overleafissa](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 tuloksen. Aaltosulkeiden sisällä voi antaa minkä tahansa R-komennon.

### Kuvaajat

Knitr-dokumenttiin voi lisätä myös kuvaajia, kuten tässä esimerkissä:

```latex wrap theme={null}
\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")

@

The figure \ref{fig:plot1} is simple histogram.

\end{document}
```

<img src="https://mintcdn.com/ayakaleaf-pro/GmaXa-Cu4QQRFT4C/images/texlive/screenshot-2025-12-16-143811.png?fit=max&auto=format&n=GmaXa-Cu4QQRFT4C&q=85&s=af1985b1e5b5ce56b777c5d9e3066420" alt="KnitrDemo4.png" width="1915" height="756" data-path="images/texlive/screenshot-2025-12-16-143811.png" />

[Avaa tämä `knitr`-esimerkki Overleafissa](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ää tiedostoon "data.txt" tallennettua dataa, joka on nykyisessä työhakemistossa. Lohkolle annetaan muutama kuviin liittyvä asetus.

`plot1`Tämä on nimiö, jolla kuvaajaan viitataan. Etuliite "fig:" on pakollinen. Esimerkistä näet, että kuvaan viitataan komennolla `\ref{fig:plot1}`.`fig.pos="t"` sijoitusparametri. Tämä on sama kuin [figure-ympäristössä](https://learn.overleaf.com/learn/Positioning_images_and_tables#The_figure_environment) käytetty.`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 on melko tavallista kirjoittaa ja testata skripti ulkoisessa ohjelmassa ennen sen sisällyttämistä dokumenttiin.

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

```r theme={null}
## ---- myrcode1
# Create a sequence of numbers
 X = 2:10

## ---- myrcode2
# Display basic statistical measures
summary(X)
```

Huomaa rivit:

```r theme={null}
## ---- myrcode1
```

ja

```r theme={null}
## ---- myrcode2
```

Nämä merkitsevät koodilohkon alun, ja ne ovat pakollisia, jos haluat käyttää tätä skriptiä dokumentissamme, kuten seuraavassa koodikatkelmassa näytetään:

```r theme={null}
The chunk below will not be printed

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

The code must show up here

<<myrcode2>>=

@
```

<img src="https://mintcdn.com/ayakaleaf-pro/v5p5w9EX1_dka_GD/images/texlive/knitrdemo5.png?fit=max&auto=format&n=v5p5w9EX1_dka_GD&q=85&s=0f1fd4088c9359058547a7c58f121bd5" alt="KnitrDemo5.png" width="1544" height="436" data-path="images/texlive/knitrdemo5.png" />

Ensimmäistä lohkoa ei tulosteta, ja sitä käytetään vain skriptin tuomiseen komennolla `read_chunk("mycode.R")`. Siksi asetus `echo=FALSE` on määritetty. Skriptejä ei myöskään saa tallentaa välimuistiin. Kun skripti on tuotu, voit tulostaa lohkon käyttämällä nimiötä, jonka asetit merkinnän `## ----` jälkeen. Tässä tapauksessa se on `myrcode2`.

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

### Viiteopas

Joitakin lohkojen asetuksia:

* `results`. Muuttaa R-koodin tuottamien tulosten käsittelyä. Mahdolliset arvot ovat:
  * `markup` Käytä LaTeXia tulosteen muotoiluun.
  * `asis` Tulosta R:n raakatulokset.
  * `hold` Pidätä tulosteet 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`. Tallennetaanko koodilohko välimuistiin. Mahdolliset arvot ovat: `TRUE` ja `FALSE`
* `highlight`. Korostetaanko lähdekoodin syntaksi. Mahdolliset arvot ovat: `TRUE` ja `FALSE`
* `background`. Lohkon taustaväri. Voidaan käyttää rgb- ja HTML-muotoja. Oletusarvo on *"#F7F7F7"*.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.