Tähän asti työpajassa olemme enimmäkseen vain kirjoittaneet vakioarvostusasiakirjan. Haluamme kuitenkin integroida R-koodin asiakirjaamme luodaksemme toistettavia objekteja, kuten kuvioita, taulukoita ja tekstiä.
10.1Koodipalat
Lisää koodikappale painamallaCtrl + Alt + Ilähderuudussa (vasen yläruutu RStudion oletusasetuksissa). Näkyviin tulee koodipala:
Koodipalan sisällä voit kirjoittaa ja ajaa R-koodia. Jos tulostat R-koodisi tulosteen, se näkyy koodikappaleen alapuolella lähderuudussa ja tuloste näkyy lopullisessa käännetyssä asiakirjassa. Tästä on hyötyä kuvien ja taulukoiden tuottamisessa.
- Koodipalan oikeassa reunassa näet kolme painiketta.
- Hammaspyörän avulla on helppo määrittää koodilohkovaihtoehtoja - käsitellään alla.
- Keskimmäinen painike suorittaa kaikki koodipalat ennen tiettyä toimintoa (
Ctrl + Alt + P
) - Oikeanpuoleinen painike suorittaa kaiken koodin koodikappaleessa.
10.1.1Pikanäppäimet
Haluat oppia nämä ASAP.
Ctrl + Alt + I
- Lisää uusi koodikappaleCtrl + Enter
- Suorita koodirivi, jolla kohdistin on päälläCtrl + Alt + R
- Suorita kaikki asiakirjassa oleva koodiCtrl + Alt + P
- Suorita kaikki koodipalat kohdistimen yläpuolellaCtrl + Vaihto + F10
- Käynnistä R uudelleen
10.1.2Vaihtoehdot
Koodikappaleen otsikossa voidaan määrittää useita koodinpalavaihtoehtoja, joilla muokataan sitä, miten koodipala hahmonnetaan neulomisen aikana. Nämä vaihtoehdot eivät näy hahmonnetussa asiakirjassa – vaikka et piilottaisikaan hahmonnetun asiakirjan koodipaloja.
Kattava lista lohkovaihtoehdoista löytyy täältä:https://yihui.org/knitr/options/
10.1.2.1nimi
Paras käytäntö on sisällyttää lyhyt ja yksilöllinen nimi jokaiseen koodiosan otsikkoon. Tämä on erityisen hyödyllistä, jos sinun on tehtävä vianmääritys asiakirjassasi, koska voit jäljittää virheen lähteen koodiosan nimen perusteella. "Nimi" ei ole määritetty argumentiksi otsikossa; se on yksinkertaisesti erotettu "r":stä välilyönnillä. Tämä on esimerkki alla olevassa kuvassa rivillä 9, jossa "lisäys" on annettu koodikappaleen nimenä ({r lisäys}
).
10.1.2.2kaiku
Looginen arvo (tosi tai epätosi), joka ilmaisee, pitäisikö koodikappaleen olla näkyvissä hahmonnetussa asiakirjassa. Oletuksena koodinpala on näkyvissä neulomisen yhteydessä (kaiku = tosi
). Jos haluat piilottaa tietyn koodiosan, aseta kaiku arvoon "false" (echo=false
).
Sisällytä koodikappale renderöidyn asiakirjan kanssakaiku = tosi
.
Sulje koodipala pois hahmonnetusta asiakirjastaecho=false
.
10.1.2.3fig.width, fig.height ja fig.cap
Thefig.width
jafig.korkeus
vaihtoehtojen avulla voit hallita tietystä koodipalasta luodun kuvan kokoa.fig.cap
tarjoaa mahdollisuuden lisätä kuvatekstin tietystä koodipalasta luodun luvun alle.
Tässä on esimerkki juonitulosta koodikappaleesta.
Tässä olen täsmentänytfig.width
,fig.korkeus
, jafig.cap
. Huomaa, että juonen mitat ovat muuttuneet edellisestä kuvasta ja kuvan alaosaan on lisätty kuvateksti.
Monissa tapauksissa haluat, että tekstitykset numeroidaan ja haluat tämän tapahtuvan automaattisesti. Tätä varten sinun on ensin asennettava pakettikirja alas(install.packages("bookdown")
). Määritä YAML-otsikossa, että tulosteen tulee olla "html_document2" tiedostostakirja alaspaketti (lähtö: bookdown::html_document2
). Kun teet asiakirjan, luvut numeroidaan nyt automaattisesti siinä järjestyksessä, jossa ne näkyvät asiakirjassa. Käytä tekstissä ristiviittausta kuviin nimellä\@ref(kuva:kuvan_nimi)
. Alla olevan kuvan esimerkin avulla voit kirjoittaa "In\@ref(kuva:IrisScatter)
voimme nähdä, että setosoa-lajilla on yleensä lyhyempi verholehti kuin kahdella muulla lajilla." Lisätietoja on osoitteessahttps://bookdown.org/yihui/rmarkdown-cookbook/figure-number.html.
10.1.2.4viesti ja varoitus
Käyttämälläviesti=FALSE
ja taivaroitus = EPÄTOSI
estää viestit ja varoitukset, jotka estävät niitä tulostumasta renderöityyn asiakirjaan.Varoitus:Tukista nämä viestit/varoitukset omalla vastuullasi. Ilman näitä viestejä/varoituksia saatat olla erittäin vaikeaa löytää koodissasi olevia ongelmia.
Esimerkki viesteistä, jotka on tuotettu oletuksenaviesti=TRUE
.
Yllä olevat viestit voidaan vaimentaa asetuksillaviesti=FALSE
koodilohkon otsikossa.
10.1.2.5sisältää
Koodilohkon otsikotinclude=FALSE
ohitetaan, kun asiakirja renderöidään. Tästä voi olla hyötyä dokumenttien kehittämisessä. Sinulla voi esimerkiksi olla koodikappale, joka tuottaa virheen, joka estää sinua hahmontamasta loput asiakirjasta, tai saatat kyseenalaistaa tietyn koodiosan säilyttämisen.include=FALSE
jättää koodin pois hahmonnetusta asiakirjasta poistamatta koodia kokonaan .Rmd-tiedostosta.
Oletus oninclude=TRUE
. Alla olevassa esimerkissäsisältää
ei ole muuttunut oletusarvosta, ja siksi kaikki koodipalat ovat hahmonnetussa asiakirjassa.
Alla olevassa esimerkissä lisäsininclude=FALSE
toisen koodiosan otsikkoon nimeltä "iris-sepal-scatter". Toinen koodikappale jätetään renderöidyn asiakirjan ulkopuolelle.
10.1.2.6Yleisten asetusten asettaminen
Voi olla hyödyllistä määrittää yleiset asetukset vakiomuodon tuottamiseksi koko asiakirjassa. Voit asettaa tämän painikkeellaknitrtoimintoopts_chunk$set()
. Voit esimerkiksi määrittää vakiomitat luvuille, jotka on tuotettu asiakirjassasi koodipaloissa. Alla olevassa koodikappaleessa näet, että asetinfig.width
klo 8 jafig.korkeus
4.
kohdassa määritellyt vaihtoehdotopts_chunk$set()
tulee oletusasetukseksi asiakirjaa renderöidessään. Sinulla on kuitenkin edelleen mahdollisuus korvata nämä vaihtoehdot tietyille koodilohkoille. Edellisen esimerkin pohjalta saatat huomata, että yksi kymmenestä tonteistasi ei ole esteettisesti miellyttävä.kuva leveys = 8
jakuva.korkeus = 4
. Voit määrittää määritettävän juonen tuottavassa koodikappaleessakuva leveys = 6
jakuva.korkeus = 6
, esimerkiksi.
10.2Sisäinen koodi
Inline-koodin avulla voit lisätä R-koodin asiakirjaan dynaamisesti päivitettyihin tekstin osiin.
Sisällytäksesi sisäänrakennetun koodin sinun on sisällytettävä R-koodisi:.
Voit kirjoittaa esimerkiksi:
Mikä antaisi:Keskimääräinen verholehden pituus löytyyiiristietojoukko on 5.8433333.
Käytän usein sisäistä koodia päivittääkseni YAML-otsikon päivämäärän päivämäärään, jolloin asiakirja viimeksi renderöitiin.
Voit muotoilla päivämäärän uudelleen käyttämällämuoto()
toiminto, kuten alla olevassa kuvassa näkyy.
10.3Sinun vuorosi (osa 1)
Tämän harjoituksen tarkoituksena on perehtyä koodipaloihin ja rivikoodiin, EI testata R-tietoasi. siksi olen lisännyt tarvittavan koodin jokaisen tehtävän alle.
- Lisää koodipala käyttämälläCtrl + Alt + ituodaksesi esimerkkitietojoukon.
read.csv(tiedosto = tiedosto.polku("data", "zms_thesis_metrics.csv"), stringsAsFactors = EPÄTOSI)
- Lisää nimi tälle koodikappaleen otsikoille ja kaikille myöhemmille koodilohkon otsikoille.
- Lisää pelkkä tekstikuvaus koodiosan yläpuolelle.
- Lisää seuraava järjestämätön luettelo, joka kuvaa tuotujen tietojen sisällön.
uniikki tunniste
(merkki) yksilöllinen näytetunnusjärvi
(merkki) järven koodi: caz = Cazenovia-järvi, onon = Onondaga ja ot = Otiscolat
(numeerinen) näytteenottopaikan leveysastepitkä
(numeerinen) näytteenottopaikan pituusastesubstraatin_koko_d50
(numeerinen) hiukkaskoon mediaani pikkukivimäärästäjohtavuus
(numeerinen) ominaisjohtavuus (µS/cm)rikkaus
(numeerinen) taksonominen rikkausshannon
(numeerinen) Shannon-Wienerin monimuotoisuusindeksin arvotpct_ephemeroptera
Ephemeroptera taksonien (numeerinen) suhteellinen runsauspct_amphipoda
(numeerinen) Amphipoda-taksonien suhteellinen runsauspct_diptera
Diptera taksonien (numeerinen) suhteellinen runsausdom_1
kussakin näytteessä havaitun hallitsevimman taksonin (numeerinen) suhteellinen runsaus
- Lisää koodipala tuodaksesisiisti monimuotoisuuspaketteja.
kirjasto (siivous)
- Lisää pelkkä tekstikuvaus koodiosan yläpuolelle.
- Lisätä
viesti=FALSE
koodikappaleen otsikkoon estääksesi paketin käynnistysviestit
- Lisää koodipala alle
kirjasto (siivous)
esikäsitellä järven nimi (järvi
), joka liittyy kuhunkin näytteeseen.
thesis.df <- thesis.df%>% muuttua(järvi = case_when(järvi%sisään%"tapaus" ~"Cazenovia",järvi%sisään%"voi ei" ~"Onondaga",järvi%sisään%"o t" ~"Otisco", TOTTA ~"VIRHE"), järvi = tekijä(järvi,tasot = c("Onondaga", "Otisco", "Cazenovia")))
- Lisää koodipala heti YAML-otsikon alapuolelle määrittääksesi yleiset koodipalaasetukset
- täsmentää
fig.width
jafig.korkeus
- määritä otsikossa
echo=FALSE
piilottaaksesi tämän koodikappaleen – lukijan ei tarvitse nähdä tätä
- täsmentää
- Luo sirontakaavio lisäämällä koodipala.
- Lisää otsikko
- Lisää koodipala luo boxplot.
- Muokkaa hahmon kokoa
- Lisää otsikko
- Lisää lukujen lyhyt tulkinta "Johtopäätökset" -osioon.
- Bonus:Yritä päivittää koodikappaleen asetukset käyttämällä koodikappaleen oikeassa yläkulmassa olevaa hammaspyörää.
10.4Interaktiiviset ominaisuudet
Vuorovaikutteiset taulukot ja kuviot ovat loistava tapa tehdä asiakirjastasi kiinnostavampi ja niistä voi olla paljon hyötyä tietojen tutkimisessa. Varoitan sinua, että jos käytät näitä ominaisuuksia liian usein, asiakirjasi tulee sotkuiseksi ja todennäköisesti latautuu ja toimii hitaasti.
10.4.1DT
TheDTpaketin avulla sinä ja lukijasi voivat olla vuorovaikutuksessa asiakirjasi taulukoiden kanssa. Voit suodattaa ja lajitella taulukon nähdäksesi tiedot, joista olet eniten kiinnostunut tutkimaan tai ymmärtämään.
Lisätietoja on osoitteessahttps://rstudio.github.io/DT/
## ## Paketin liittäminen: "DT"
## Seuraavat objektit on peitetty paketista:shiny:## ## dataTableOutput, renderDataTable
10.4.2Juoni
Juonihelpottaa interaktiivisten hahmojen luomista. Jotkut hyödyllisimmistä ominaisuuksista ovat kyky…
- kierrä kuvaobjekteja ja näet tiettyihin ominaisuuksiin liittyviä ponnahdusikkunoita
- Lähennä ja loitonna
- ota kuva hahmosta
Lisätietoja on osoitteessa:https://plot.ly/ggplot2/
Käytän yleensäjuonimainenkanssaggplot2. Thejuonimainentoiminto,ggplotly()
, tekee muuntamisesta helppoaggplot2lukuja interaktiiviseksijuonimainenlukuja.
10.4.3Esite
Esiteon loistava resurssi interaktiivisten karttojen luomiseen minimaalisella koodauksella.
Lisätietoja on osoitteessa:https://rstudio.github.io/leaflet/
kirjasto(esite)tiedot("järistykset")esite(data =järistykset, vaihtoehdot = esite Valinnat(minZoom = 4, maxZoom = 18))%>% lisätiilejä()%>% lisääCircleMarkers(~pitkä,~lat, fillOpacity = 0,75, aivohalvaus = VÄÄRÄ, ponnahdusikkuna = liitä("Näytetunnus:", järistykset$uniikki tunniste,"
", "Suuruus:", järistykset$mag,"
", "Leveysaste:", järistykset$lat,"
", "Pituusaste:", järistykset$pitkä))
Toinen siisti ominaisuus on kyky ryhmitellä pisteitä tiheyden visualisoimiseksi paremmin. Voit tehdä tämän asettamallaclusterOptions = markerClusterOptions()
.
kirjasto(esite)tiedot("järistykset")esite(data =järistykset, vaihtoehdot = esite Valinnat(minZoom = 4, maxZoom = 18))%>% lisätiilejä()%>% lisääCircleMarkers(~pitkä,~lat, fillOpacity = 0,75, aivohalvaus = VÄÄRÄ, ponnahdusikkuna = liitä("Näytetunnus:", järistykset$uniikki tunniste,"
", "Suuruus:", järistykset$mag,"
", "Leveysaste:", järistykset$lat,"
", "Pituusaste:", järistykset$pitkä), clusterOptions = markerClusterOptions())
10.5Sinun vuorosi (osa 2)
- Lisää koodipala "Preprocessing"-otsikon alle ja lisää seuraavaDTkoodi
- lisää tämä linkki (https://rstudio.github.io/DT/) koodin yläpuolella olevaan kuvaukseen, jossa kerrotaan, mistä löydät lisätietojaDT
- Lisää koodipala "Study Area" -otsikon alle ja lisää seuraavaesitekoodi
- lisää tämä linkki (https://rstudio.github.io/leaflet/) koodin yläpuolella olevaan kuvaukseen, jossa kerrotaan, mistä löydät lisätietojaesite
kirjasto(esite)kaveri <- colorFactor(c("#619Cff","#F8766D","#00BA38"), verkkotunnus = c("Cazenovia","Onondaga","Otisco"))esite(data =thesis.df, vaihtoehdot = esite Valinnat(minZoom = 7, maxZoom = 13))%>% lisätiilejä()%>% lisääCircleMarkers(~pitkä,~lat, fillOpacity = 0,75, fillColor = ~kaveri(järvi), aivohalvaus = VÄÄRÄ, ponnahdusikkuna = liitä("Näytetunnus:", thesis.df$uniikki tunniste,"
", "Järvi:", thesis.df$järvi,"
", "Leveysaste:", thesis.df$lat,"
", "Pituusaste:", thesis.df$pitkä))
- Muokkaa sirontakuvaajan koodikappaletta, jotta kuvasta tulee interaktiivinenjuonimainen
- lisää tämä linkki (https://plot.ly/ggplot2/) koodin yläpuolella olevaan kuvaukseen
- leikkiä interaktiivisella juonella ja juonen oikeassa yläkulmassa olevilla työkaluilla
- Voit esimerkiksi lähentää, napsauttaa pisteitä saadaksesi lisätietoja, ottaa tilannekuvan nykyisestä juovasta jne.