Olemme jo nähneet, että voimme korostaa minkä tahansa koodin kolminkertaisella takamerkillä ja kielen avainsanallaensimmäinen jaksokirjasta. TheKnitr R pakettitarjoaa mekanismin sisällyttämiseenelääkoodin sen sijaan dokumenttiin. Tämä tarkoittaa, että lukuun ottamatta koodia, mutta voi nähdä ja olla vuorovaikutuksessa tällaisen koodin tuloksia. Tämä on erittäin hyödyllistä tutkimusviestinnän ja toistettavuuden kannalta.
Tätä kirjan osaa varten meidän on asennettava muutama lisäpaketti. Kopioi ja liitä asennuspakettien koodi RStudio-konsoliisi
install.packages(c("dplyr","DT","ggplot2"))
3.1Johdanto
Jokaista koodilohkoa kutsutaan "koodipalaksi". Sinulla voi olla niin monta koodilohkoa kuin haluat. Koodipala on pohjimmiltaan se, mitä olemme jo käyttäneet, eli kolminkertaiset backticks koodiblobin molemmille puolille, mutta lisää nyt kiharat hakasulkeet ensimmäisen tripletin loppuun, esim.
``` {r}```
Etsi vihreä "lisää"-painike tekstieditorin ruudun yläosasta, jotta voit lisätä R-kappaleen. Vaihtoehtoisesti voit käyttää pikanäppäintäalt+vaihto+i
Jokainen osa on hyvin konfiguroitavissa kimpalevaihtoehtojen avulla käyttämällä avainarvopareja jälleen kerran. Ensimmäinen palavaihtoehto onmoottori
eli mikä kieli sisältyy koodin osaan. Kyllä Rmarkdown pystyy käyttämään monia eri kieliä. Käytä vihreän "Lisää"-painikkeen pudotusnuolta tutustuaksesi joihinkin yleisimpiin kieliin.
HUOM:Moottorin nimi eli kielen nimi, aina ensin R-kappaleessa, yleensä avain "moottori" jätetään pois.
Sisällytetään ensimmäinen R-koodimme. Aiomme ladata kirjastoamagrittr
, saadaksesi putkenoperaattorin (ei ole liian tärkeää ymmärtää putkioperaattoria tälle kurssille), niin kutsumme perusfunktiotaavaliable.packages()
ja tallenna tulokset muuttujaanavail_packages
jaNeuloa
asiakirjamme jälleen kerran. Huomaa, että lisään myös uuden osion otsikon.
#R-koodi``` {r}kirjasto (magrittr)avail_packages <- available.packages(contriburl = contrib.url("https://mirror.aarnet.edu.au/pub/CRAN/"))#head(avail_packages)avail_packages %>% head```
– Se on laskemista!
3.2Kappaleen nimi
On erittäin hyödyllistä nimetä koodipalat, sillä ne voivat palvella useita tarkoituksia, kuten ristiviittauksia ja virheenkorjausta. Nimet ovat valinnaisia, mutta jos lisäät ne, niiden on oltava toisessa paikassa.
Minkä tahansa palan yleinen asettelu on
``` {r chunk_name, options}```
Lisätään aget_data
nimi koodikappaleeseemme. Aiomme myös sotkea tietojamme hieman saadaksemme tärkeimmät tiedot meille ja painaaNeuloa
``` {r get_data}kirjasto (magrittr)kirjasto (dplyr)avail_packages <- available.packages(contriburl = contrib.url("https://mirror.aarnet.edu.au/pub/CRAN/")) %>%as.data.frame() %>%as_tibble() %>%rivisuuntainen() %>%mutate(Depend = pituus(unlist(strsplit(Imports, split = ",")))) %>%ungroup() %>%valitse (paketti, versio, riippuvainen, tuonti, lisenssi)```
— Miltä näyttää?
3.3Osavaihtoehdot
Saat kattavan yleiskatsauksen koodipaloista, jotkaknitr
viitatalopullinen opaskirjoittajaltaKnitr
jaRmarkdown
R-paketit.
Tässä on lyhyt luettelo yleisimmistä, joita yleensä käytän.
nimi | arvo | tyyppi | kuvaus |
---|---|---|---|
lapsi | TYHJÄ | code_evaluation | Tiedostonimien merkkivektori. Knitr neuloa tiedostot ja sijoittaa ne pääasiakirjaan. |
moottori | "R" | code_evaluation | Knitr arvioi palan nimetyllä kielellä, esim.engine = 'python'. Suorita names(knitr::knit_engines$get()) nähdäksesi tuetut kielet. |
eval | TOTTA | code_evaluation | Jos EPÄTOSI, knitr ei suorita koodia koodikappaleessa. |
sisältää | TOTTA | code_evaluation | Jos EPÄTOSI, knitr suorittaa kappaleen, mutta ei sisällytä osaa lopulliseen asiakirjaan. |
fig.align | "oletus" | juonet | Grafiikan kohdistaminen lopullisessa asiakirjassa. Yksi seuraavista: "vasemmalla", "oikealla" tai "keskellä". |
fig.cap | TYHJÄ | juonet | Merkkijono, jota käytetään kuvan otsikkona LaTexissä. |
fig.korkeus | 7 | juonet | Korkeus, jota käytetään R:nä palan luomille kaavioille (tuumina). |
fig.width | 7 | juonet | R-kirjaimella käytettävä leveys palan luomissa kaavioissa (tuumina). |
kaiku | TOTTA | tuloksia | Jos EPÄTOSI, knitr ei näytä koodia koodilohkossa sen tulosten yläpuolella lopullisessa asiakirjassa. |
tuloksia | "merkintä" | tuloksia | Jos "piilota", knitr ei näytä koodin tuloksia lopullisessa asiakirjassa. Jos ‘pidä’, neulo viivyttää kaikkien tulosteiden näyttämistä palan loppuun asti. Jos "asis", knitr kulkee tulosten läpi muotoilematta niitä uudelleen (hyödyllinen, jos tulokset palauttavat raaka-HTML-koodin jne.) |
viesti | TOTTA | tuloksia | Jos EPÄTOSI, knitr ei näytä mitään koodin luomia viestejä. |
Varoitus | TOTTA | tuloksia | Jos EPÄTOSI, knitr ei näytä koodin luomia varoitusviestejä. |
– Niitä on aivan liikaa, onnea!
3.4Viesti- ja varoitusvaihtoehdot
On hienoa, että dokumentissamme on live-koodia, mutta tulokset näyttävät olevan täynnä ylimääräistä tekstiä. Nämä ovat "viestejä" paketin latauksesta, ja jotkut voivat olla lisävaroitus arvojen valumisesta eri tyyppiin. Se riippuu, mutta yleensä viestin tukahduttaminen auttaa todella asiakirjan ulkoasussa. Minulla on myös tapana vaimentaa varoitukset, mutta tämä voi aiheuttaa ongelmia downstread-analyysissä. Varmista, että ymmärrät varoitukset ennen niiden poistamista.
Lisätään pari vaihtoehtoa koodikappaleeseemme ja painaNeuloa
```{r get_data, message = EPÄTOSI, varoitus = EPÄTOSI}
– Paljon parempi, vai mitä?
3.5Enemmän koodipaloja ja tietojen riitelyä
Lisätään vielä pari palaa ja kiistellään tietojamme hieman enemmän.
On okei, jos et ymmärrä osaa R-koodista tässä esimerkissä. Näiden R-osien päätarkoitus on havainnollistaa, mitä voidaan tehdä
## Tietojen saaminen ja kiistaa``` {r get_data}make_url <- function(paketti) {paste0('', paketti, '')}kirjasto (magrittr)kirjasto (dplyr)avail_packages <- available.packages(contriburl = contrib.url("https://mirror.aarnet.edu.au/pub/CRAN/")) %>%as.data.frame() %>%as_tibble() %>%rivisuuntainen() %>%mutate(Depend = pituus(unlist(strsplit(Imports, split = ",")))) %>%ungroup() %>%valitse(paketti, versio, riippuvainen, tuonti, lisenssi) %>%mutate(Paketti = make_url(Paketti),Riippuu = ifelse(is.na(tuonnit), -1, Riippuu))```## Näytetään taulukko```{r make_table, message=FALSE, warning=FALSE}kirjasto (DT)avail_packages %>% datatable(escape = FALSE)```## Piirrä tiedot```{r juoni}kirjasto (ggplot2)avail_packages %>% ggplot(aes(Depend)) + geom_bar()```
— Hämmästyttävää!
3.6Istunnon tiedot
Otetaan mukaan istuntotiedot
istunnon tiedot()
3.7Asennuskappale
Vaikka on hienoa, että jokainen osa voidaan määrittää yksitellen, joskus "globaalin" osan määrittäminen voi auttaa tekemään asiakirjakappaleista helpommin hallittavia ja helpompia lukea.
Sisällytetään "asetus"-osa (osan nimi voi olla mikä tahansa) ja asetetaan joitakin asetuksia maailmanlaajuisesti koko asiakirjalle. Huomaa, että voimme myös siirtää kaikki kirjastomme tähän osaan. Tämä voi olla tai ei ole hyvä idea, jälleen kerran kaikki riippuu siitä, mitä sinun täytyy näyttää henkilölle, jota olet myös kommunikoimassa. Älä unohda painaaNeuloa
Ota huomioon, ettäsisältää
vaihtoehto tässä asetettuVÄÄRÄ
mikä tarkoittaa, että osaa ei sisällytetä ollenkaan lopulliseen asiakirjaan, toisin kuineval = EPÄTOSI
jossa pala on mukana, mutta sitä ei arvioida.
``` {r setup, include=FALSE}knitr::opts_chunk$set(echo = TOSI,viesti = EPÄTOSI,varoitus = EPÄTOSI)kirjasto (magrittr)kirjasto (dplyr)kirjasto (DT)kirjasto (ggplot2)```
— Entä se?
3.8Viimeinen ilme
Jos olet eksynyt, toisen osion pitäisi näyttää tältä
#R-koodi``` {r setup, include=FALSE}knitr::opts_chunk$set(echo = TOSI,viesti = EPÄTOSI,varoitus = EPÄTOSI)kirjasto (magrittr)kirjasto (dplyr)kirjasto (DT)kirjasto (ggplot2)```## Tietojen saaminen ja kiistaa``` {r get_data}make_url <- function(paketti) {paste0('', paketti, '')}kirjasto (magrittr)kirjasto (dplyr)avail_packages <- available.packages(contriburl = contrib.url("https://mirror.aarnet.edu.au/pub/CRAN/")) %>%as.data.frame() %>%as_tibble() %>%rivisuuntainen() %>%mutate(Depend = pituus(unlist(strsplit(Imports, split = ",")))) %>%ungroup() %>%valitse(paketti, versio, riippuvainen, tuonti, lisenssi) %>%mutate(Paketti = make_url(Paketti),Riippuu = ifelse(is.na(tuonnit), -1, Riippuu))```## Näytetään taulukko```{r make_table, message=FALSE, warning=FALSE}kirjasto (DT)avail_packages %>% datatable(escape = FALSE)```## Piirrä tiedot```{r juoni}kirjasto (ggplot2)avail_packages %>% ggplot(aes(Depend)) + geom_bar()```