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ä:
\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 numbersX = 2:10# Display basic statistical measuressummary(X)@\end{document}
Avaa tämä knitr-esimerkki OverleafissaKuten 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.
Edellisessä osiossa esitetyn kaltaista koodilohkoa kutsutaan yleensä nimellä chunk. Knitr-lohkoille voi asettaa lisäasetuksia. Katso alla oleva esimerkki:
\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 numbersX = 2:10# Display basic statistical measuressummary(X)@\end{document}
echo=FALSETämä piilottaa koodin ja tulostaa vain R:n tuottaman tulosteen.
cache=TRUEJos 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.
Huomaa, että cache=TRUE-asetusta ei tällä hetkellä tueta Overleafissa, mutta sen pitäisi toimia paikallisesti.
Lohkossa luotuja objekteja voi käyttää ja tulostaa tekstin sisällä.
\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 numbersX = 2:10# Display basic statistical measuressummary(X)@So, the mean of the data is $\Sexpr{mean(X)}$\end{document}
Avaa tämä knitr-esimerkki OverleafissaKomento \Sexpr{mean(X)} tulostaa R-koodin mean(X) palauttaman tuloksen. Aaltosulkeiden sisällä voi antaa minkä tahansa R-komennon.
Avaa tämä knitr-esimerkki OverleafissaTämä histogrammi käyttää tiedostoon “data.txt” tallennettua dataa, joka on nykyisessä työhakemistossa. Lohkolle annetaan muutama kuviin liittyvä asetus.plot1Tä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ä käytetty.fig.height=4, fig.width=4Kuvan leveys ja korkeus.fig.cap="First plot"Kuvan kuvateksti.
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:
## ---- myrcode1# Create a sequence of numbers X = 2:10## ---- myrcode2# Display basic statistical measuressummary(X)
Huomaa rivit:
## ---- myrcode1
ja
## ---- 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:
The chunk below will not be printed<<echo=FALSE, cache=FALSE>>=read_chunk("mycode.R")@The code must show up here<<myrcode2>>=@
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.