15. R Markdown: ataskaitos ir interaktyvi analizė


Šio skyriaus medžiaga vis dar rengiama!
Dabartinė versija skirta tik peržiūrėjimui ir gali smarkiai keistis.







Šio užsiėmimo metu mokysimės programa „R“ rengti įvairius (HTML, Word, PDF) dokumentus, dirbti „RStudio Notebook“ režimu bei rengti dinamines duomenų analizės ataskaitas. Visiems šiems tikslams naudosime „R Markdown“ formato dokumentus.


Tikslas: įgyti darbo su „R Markdown“ dokumentais pagrindus.

15.1 Apie R Markdown

„R Markdown“ yra technologijos, skirtos raštingam programavimui , pavadinimas.

Pradėkime nuo to, kad tekstą kompiuteriniuose dokumentuose galima suskirstyti į dvi rūšis:

  1. grynasis tekstas (angl. plain text) – kai tekstas visame dokumente gali būti tik vienodas: atskiroms teksto dalims negalima pakeisti šrifto, dydžio, spalvos, pajuodinimo ar pan. Pvz., tekstas programoje „Notepad“.
  2. raiškusis tekstas (angl. rich text) – tai toks tekstas, kurio atskiras dalis galima formatuoti skirtingu stiliumi. Pvz., tekstas „Word“ dokumente.

„R Markdown“ dokumentai yra grynojo teksto dokumentai, kuriuos galima paversti į įvairių rūšių raiškiojo teksto dokumentus. Juose galima naudoti specialus „Markdown“ kalbos pažymėjimus, kurie kuriant raiškiojo teksto dokumentus būna paverčiami į įvairius formatavimo elementus (pvz., teksto pajuodinimus, šrifto rūšies pakeitimus, skyrių pavadinimus, lenteles). Panašios paskirties yra sistemos ir „LaTeX“ (tariama la-tek) dokumentai, tačiau „Markdown“ sintaksė yra žymiai paprastesnė ir greičiau išmokstama. „R Markdown“ dokumentuose taip pat galima įterpti „R“ ar kitokios programos kodo fragmentus. Dėl šių savybių dokumentai yra tinkami:

  1. interaktyviai analizei. „R Markdown“ dokumente galima vykdyti programos kodą ir matyti rezultatus;
  2. analizės ataskaitų rengimui. Ir žmonės, kurie skaitys šias ataskaitas, gali net neįtarti, kad jos sugeneruotos programa „R“, nes naudodamiesi „R Markdown“ galime kurti internetines svetaines, rašyti straipsnius bei knygas. Mokslines publikacijas spausdinančios organizacijos, tokios kaip „American Chemical Society“ bei „Elsevier“ turi specialiai jų straipsniams skirtus „R Markdown“ dokumentų šablonus. Naudojant „R Markdown“ technologiją taip pat galima rašyti ir kursinį ar baigiamąjį darbą.


„R Markdown“ dokumentai – tai tekstinės bylos, kurių įprastinis plėtinys yra .Rmd arba .rmd.


„R Markdown“ yra technologijos įgyvendinimui yra skirta keletas „R“ paketų (pvz., rmarkdown, knitr), interneto svetainė , kuriame pateikiama mokomoji medžiaga ir gausybė pavyzdžių, atmintinės „RStudio IDE Cheat Sheet“ ir „R Markdown Reference Guide“ bei vadovėlis „R Markdown: The Definitive Guide“ .


Užduotis 15.1

  1. Pažiūrėkite trumpą pažintinį filmuką (~1 min.), esantį šiame tinklapyje: http://rmarkdown.rstudio.com/lesson-1.html
  2. Atsisiųskite abi atmintines, skirtas „R Markdown“.
  3. Aplankykite „R Markdown“ skirtą svetainę:
    1. peržvelkite pamokų dalį „Get Started“;
    2. peržiūrėkite pavyzdžių galeriją „Gallery“.
  4. Aplankykite „R Markdown“ vadovėlio „R Markdown: The Definitive Guide“ tinklapį. Kokie pagrindiniai skyriai?

15.2 Interaktyvi analizė R Notebook režimu

Yra dviejų rūšių dokumentai, į kuriuose rašome ir vykdome „R“ kodą:

  • „R script“ (.R);
  • „R Markdown“ (.Rmd).

Pirmiausia reikia atsidaryti norimo tipo dokumentą. Vienas būdas, kaip atsidaryti „R Markdown“, vaizduojamas pav. 15.1.


„R Markdown“ („R Notebook“) dokumento atidarymas programoje „RStudio“ .

Pav. 15.1: „R Markdown“ („R Notebook“) dokumento atidarymas programoje „RStudio“ .

Atsidarius „R Markdown“ dokumentą, „RStudio“ sukuria šiam dokumentui pritaikytą meniu (pav. 15.2).


„RStudio“ meniu variantas, skirtas „R Markdown“ dokumentams dirbant „R Notebook“ režimu sistema „Windows“.

Pav. 15.2: „RStudio“ meniu variantas, skirtas „R Markdown“ dokumentams dirbant „R Notebook“ režimu sistema „Windows“.

Toliau reiktų ištrinti visą dokumento turinį (kol kas jo mums nereikės). Prieš rašydami naują programos kodą, panagrinėkime kelis „R Script“ ir „R Markdown“ dokumentų skirtumus:

  1. „R Script“ dokumentuose „R“ kodas vykdomas tik per konsolę, t. y., pirmiausia nusiunčiamas į konsolės langą, įvykdomas ir konsolės lange parašomas atsakymas. Dirbant su „R Markdown“ galimi 2 kodo vykdymo režimai:
    1. per konsolę: įprastinis režimas;
    2. tame pačiame dokumente (angl. inline): „Užrašų knygutės“/ „R Notebook“ režimas.


„**R Notebook**“ (A), kai rezultatas rodomas tame pačiame dokumente,  arba **įprastinio** (B), kai kodas vykdomas per konsolę, darbo režimo pasirinkimas programoje „RStudio“.

Pav. 15.3: „R Notebook“ (A), kai rezultatas rodomas tame pačiame dokumente, arba įprastinio (B), kai kodas vykdomas per konsolę, darbo režimo pasirinkimas programoje „RStudio“.

  1. Kitas skirtumas – kas laikoma darbine direktorija. „R Script“ atveju – tai ta direktorija, kuri parašyta konsolės lango viršutinėje dalyje (pav. 15.4). „R Markdown“ atveju galimi 3 variantai:
    1. aplankas, kuriame yra mūsų .Rmd dokumentas \((F_A)\). Standartiškai šis variantas yra pasirinktas pagal nutylėjimą.
    2. „RStudio“ projekto aplankas \((F_B)\) (tai mano pagrindinis pasirinkimas);
    3. įprastinė darbinė direktorija \((F_C)\), ta pati, kaip ir „R Script“ atveju.

Darbinės direktorijos pavadinimas užrašytas „Console“ lango viršutinėje dalyje.
Šiuo atveju tai aplankas `"~/R/pratybos-r-2018/"`.

Pav. 15.4: Darbinės direktorijos pavadinimas užrašytas „Console“ lango viršutinėje dalyje. Šiuo atveju tai aplankas "~/R/pratybos-r-2018/".


Darbinio aplanko nustatymas dirbant „R Notebook“ režimu.

Pav. 15.5: Darbinio aplanko nustatymas dirbant „R Notebook“ režimu.

  1. Trečiasis skirtumas yra būdas, kaip turi būti rašomas „R“ kodas. „R Script“ dokumente nieko papildomo daryti nereikia, užtenka tiesiog rašyti kodą. „R Markdown“ dokumente pirmiausia reikia įterpti taip vadinamą „R“ kodo bloką (angl. chunk), kuris vaizduojamas pav. 15.6. Bloko pradžią simbolizuoja iš naujos eilutės parašyti trys graviai – simboliai, panašūs į kairinį kirčio ženklą (`, angl., backtick) – ir riestiniuose skliaustuose užrašyta raidė „r“ ({r}). Bloko pabaigą simbolizuoja trys graviai, aprašyti iš naujos eilutės. Kodą reikia rašyti tarp pradžios ir pabaigos simbolių. Blokai įterpiami naudojant klavišų kombinaciją Ctrl+Alt+I, kodo fragmentą (snippet) r arba paspaudus „Insert“ mygtuką ir pasirinkus „R“ bloką (pav. 15.2 \(H\) ir \(H_1\)).

„R“ kodo blokas „R Markdown“ dokumente.

Pav. 15.6: „R“ kodo blokas „R Markdown“ dokumente.

Jei blokas įterptas teisingai, plotas bloko viduje įprastai nusidažo kitokia spalva ir atsiranda trys bloko valdymo simboliai: krumpliaratis ir dvi rodyklės (pav. 15.7 A, B ir C). Paspaudus krumpliaratį, atidaromas pagrindinių kodo bloko nustatymo meniu (pav. 15.7), kuriame galima pakeisti parametrus, tokius kaip bloko pavadinimas (D; kiekvienas blokas arba turi pavadinimo neturėti, arba pavadinimas turi būti unikalus ir sudarytas iš tik iš skaičių, raidžių ir - ženklų), kodo vykdymo ir rezultatų rodymo/slėpimo parametrai (E), lentelių spausdinamo būdas (H), bloko paveikslų dydis (I). Apie kitus nustatymus, kurių nėra šiame meniu lange, galima sužinoti paspaudus nuorodą J. Bloke parašytas kodas vykdomas paspaudus ikoną C, o paspaudus B – vykdomas visų aukščiau esančių blokų kodas. Skaitiniai atsakymai bus parašomi, o paveikslai nubraižomi iš karto po kodo bloku.


„R“ kodo bloko elementai ir svarbiausių nustatymų meniu.

Pav. 15.7: „R“ kodo bloko elementai ir svarbiausių nustatymų meniu.

Jei blokas pavadinamas setup, jis tampa ypatingu – nustatymų – bloku, kurio kodas vykdomas prieš visų kitų blokų kodą (todėl išnyksta viena ikona, pav. 15.8). Bloke esantys nustatymai pagal nutylėjimą tampa pagrindiniais visų kitų blokų nustatymais. Nustatymų blokas gali būti įterptas naudojant kodo fragmentą setup.


„Nustatymų“ kodo blokas.

Pav. 15.8: „Nustatymų“ kodo blokas.

Įprastai setup bloke naudoju tokią pradinę konfigūraciją:

# Paketai
library(tidyverse)
library(magrittr)

# Nustatymai
knitr::opts_chunk$set(
    echo       = FALSE,
    fig.height = 3, 
    fig.width  = 5, 
    fig.align  = "center"
)

# Sys.setlocale(locale = "Lithuanian")

Norėdami rašyti naujas kodo eilutes, joms tiesiog įterpiame po naują bloką.


Rašant programos kodą rekomenduojama tokia komandų seka:

  1. Paketų užkrovimas („setup“ bloke);
  2. Nustatymai („setup“ bloke);
  3. Duomenų įkėlimas (kitame bloke);
  4. Visa kita (kituose blokuose).


Daugiau informacijos apie „R“ užrašų knygutės režimą („R Notebooks“):


Užduotis 15.2

  1. Atsidarykite naują „R Notebook“ dokumentą ir ištrinkite visą jo turinį.
  2. Visais trimis nurodytais būdais įsiterpkite „R“ kodo bloką.
  3. Įvykdykite kodą plot(1). Pakeiskite bloko paveikslo dydį. Vėl įvykdykite kodą. Ar pastebite skirtumą?
  4. Naudodami kodo fragmentą, įsiterpkite setup kodo bloką.

15.3 Dokumento atidarymas rengiant ataskaitą

Siekant rengti ataskaitą, naujas „R Markdown“ dokumentas įprastai atidaromas kitokiu būdu, nei minėjome anksčiau naudojant meniu pav. 15.9 arba:

  • „RStudio“ meniu → File → New file → R Markdown…

Pastaba: „File“ meniu (kuris yra viršuje kairėje) – nemaišykite su „Files“ langu.


„R Markdown“ dokumento atvėrimas.

Pav. 15.9: „R Markdown“ dokumento atvėrimas.


Užduotis 15.3 Atsidarykite naują „R Markdown“ dokumentą. Peržvelkite jo turinį ir struktūrą.

15.4 Dokumentų generavimas

Ataskaitos ir kitokie dinaminiai dokumentai sugeneruojami paspaudus mygtuką „Knit“ (pav. 15.10 ir 15.2 F). Paspaudę trikampį prie šio mygtuko (pav. 15.10 ir 15.2 F’) galime pasirinkti vieną iš kelių dažniausiai naudojamų ataskaitos formatų. Tinklapio (HTML) formatui jokių papildomų priedų nereikia. Word formatui reikia programos „Pandoc“, kuri yra įdiegiama su „RStudio“. PDF formatui reikia „Pandoc“ ir „LaTeX“ (skaitoma la-tek) sistemos, kuri turėtų būti įdiegta atskirai (mūsų kursui ji nėra reikalinga).

„R Markdown“ dokumento (kairėje) ir juo sugeneruotos *HTML* formato ataskaitos (dešinėje) pavyzdys.
Paspaudę mygtuką „Knit“ sugeneruosite ataskaitą, kuri atsiras arba „Viewer“, arba atskirame lange.
Vėliau paspaudę „Open in Browser“ mygtuką, galėsite ataskaitą persikelti į interneto naršyklės langą.
Paspaudę trikampį šalia „Knit“ mygtuko, galėsite pasirinkti vieną ir dažniausiai naudojamų ataskaitos formatų.
Eilutės Nr. 14 pabaigoje padėti 4 tarpai (kiekvienas vos įžiūrimas taškiukas simbolizuoja tarpą).
Dėl jų -- ketvirtasis sakinys yra naujoje pastraipoje.

Pav. 15.10: „R Markdown“ dokumento (kairėje) ir juo sugeneruotos HTML formato ataskaitos (dešinėje) pavyzdys. Paspaudę mygtuką „Knit“ sugeneruosite ataskaitą, kuri atsiras arba „Viewer“, arba atskirame lange. Vėliau paspaudę „Open in Browser“ mygtuką, galėsite ataskaitą persikelti į interneto naršyklės langą. Paspaudę trikampį šalia „Knit“ mygtuko, galėsite pasirinkti vieną ir dažniausiai naudojamų ataskaitos formatų. Eilutės Nr. 14 pabaigoje padėti 4 tarpai (kiekvienas vos įžiūrimas taškiukas simbolizuoja tarpą). Dėl jų – ketvirtasis sakinys yra naujoje pastraipoje.


Svarbi pastaba!¹

Paspaudus „Knit“ mygtuką, prieš kurdama naują dokumentą, programa „R“ kompiuterio atmintyje sukuria naują, tuščią darbo sesiją. Tai reiškia, kad „R Markdown“ dokumente, kuriame yra duomenų analizės kodas, šis kodas pradedamas vykdyti visiškai tuščioje aplinkoje, kurioje nėra nei užkrautų paketų, nei įkeltų duomenų. Todėl programos kode privalo būti tinkamu eiliškumu pateiktos visos kodo dalys, nurodytos poskyrio 15.2 pabaigoje (paketų užkrovimas, nustatymai, duomenų įkėlimas ir kita).

¹ Ši pastaba negalioja „html_notebook“ tipo dokumentams. („R notebook“ darbo režimas ir „html_notebook“ dokumentai nėra tas pats.)


Užduotis 15.4 Naudodami atsidarytą „R Markdown“ dokumentą, sukurkite ataskaitą HTML formatu.

15.5 R Markdown dokumento struktūra

„R Markdown“ dokumentus sudaro 3 pagrindinės dalys (pav. 15.11):

  1. Antraštė su technine informacija „YAML“ formatu;
  2. Tekstas, paaiškinimai, komentarai, parašyti natūralia žmonių kalba, pvz., lietuviškai, su „R Markdown“ ženklinimo elementais;
  3. R programos kodo blokai, kuriuose vykdoma analizė.
Pagrindinės „R Markdown“ dokumento dalys. 
Pavyzdyje rodoma dokumento versija, atidaryta programa „RStudio“.

Pav. 15.11: Pagrindinės „R Markdown“ dokumento dalys. Pavyzdyje rodoma dokumento versija, atidaryta programa „RStudio“.


Užduotis 15.5 Parsisiųskite „R Markdown“ atmintinę ir išnagrinėkite virš lentelių esančią medžiagą „.Rmd files“, „Reproducible Research“ ir „Dynamic Documents“ bei schemas-lenteles „.Rmd structure“ bei „Workflow“.

15.5.1 YAML antraštės elementai

Antraštė YAML formatu rašoma pačiame dokumento viršuje prie kairiojo krašto parašius tris brūkšnelius ---. Antraštės pabaiga nurodo tokie patys trys brūkšneliai. Antraštė rašoma tokiu formatu (pavadinimas: reikšmė), kuris tinkamas kompiuteriui, bet suprantamas ir žmogui. Dažniausiai naudojami tokie YAML nustatymai:

---
title:    Pavadinimas
subtitle: Paantraštė
author:   Autorius/Autoriai
date:     Data 
output:   Generuojamo dokumento formatas
---

Pagrindinius nustatymus galima reguliuoti naudojant meniu komandas (pav. 15.12).


Dokumento parametrus reguliuojantys ir YAML antraštę koreguojantys nustatymai (1).

Pav. 15.12: Dokumento parametrus reguliuojantys ir YAML antraštę koreguojantys nustatymai (1).


Atkreipkite dėmesį: automatiniu būdu keičiant dokumento formatą (HTML, Word, PDF), YAML antraštėje gali būti sugadinta lietuviškų simbolių koduotė (tai žinoma strigtis dabartinėje „RStudio“ versijoje). Būkite atidūs.


Dokumento parametrus reguliuojantys ir YAML antraštę koreguojantys nustatymai (2).

Pav. 15.13: Dokumento parametrus reguliuojantys ir YAML antraštę koreguojantys nustatymai (2).


Jei nustatymai koreguojami ranka, labai svarbu vieno lygio nustatymams išlaikyti vienodą atitraukimą nuo krašto. Gerai:

---
output: 
  html_document: 
    toc: yes
    toc_depth: 2
    toc_float: yes
---

Blogai, nes nesilaikoma lygiavimo:

---
output: 
  html_document: 
     toc: yes
      toc_depth: 2
    toc_float: yes
---

Parametras toc_float: yes HTML dokumentuose įterpia „plaukiojantį“ turinį (toctable of contents – turinys).


Užduotis 15.6 Išbandykite dokumento nustatymų keitimo meniu:

  1. Pakeiskite pagrindinę dokumento temą;
  2. Pridėkite numeruojamą turinį;
  3. Pakeiskite kodo išryškinimo temą (highlighting);
  4. Naudodami šiuos nustatymus, sugeneruokite naują HTML dokumentą.

15.6 R Markdown sintaksė

15.6.1 Markdown sintaksė

Programavimo kalbos sintaksė – tai taisyklės ir reikalavimai, kuriuos turi tenkinti ta kalba parašytas kodas. „Markdown“ – tai ne programavimo, o teksto ženklinimo (angl. markup) kalba, kurios sintaksę sudaro specialieji simboliai, rašomi tekstui skirtoje „R Markdown“ dokumento dalyje. Sugeneravus ataskaitą ar kitokį galutinį dokumentą, specialiaisiais simboliais pažymėtos dalys interpretuojamos kaip suformatuotas tekstas (pajuodinimai, pasvirasis šriftas, antraštė, nuoroda, sąrašas, lentelė ir t.t. Peržvelkite pav. 15.10). „R Markdown“ sintaksę sudaro bendrieji „Markdown“ sintaksės elementai bei programai „R“ specifiški elementai.

Tam, kad geriau suprastumėte, kas tie specialieji simboliai ir kaip jie vartojami bei interpretuojami, parsisiųskite „R Markdown“ sintaksės gidą ir išnagrinėkite medžiagą, esančią 1 puslapyje ir 2 puslapio pradžioje (iki „Chunk Options“). Be abejo, verta paminėti, kad „RStudio“ pagalbos sistemoje („Help“ kortelėje, pav. 15.14) pateikti svarbiausi „R Markdown“ raktažodžiai.


Pagrindinius „R Markdown“ sintaksės elementus galite rasti naudodamiesi „RStudio“: meniu juostoje pasirinkę „Help“ –> „Markdown Quick Reference“.
„Help“ lange paspaudę raudonai pažymėtą ikoną pasididinsite aprašymo langą.

Pav. 15.14: Pagrindinius „R Markdown“ sintaksės elementus galite rasti naudodamiesi „RStudio“: meniu juostoje pasirinkę „Help“ –> „Markdown Quick Reference“. „Help“ lange paspaudę raudonai pažymėtą ikoną pasididinsite aprašymo langą.


Atkreipsiu dėmesį tik į keletą neakivaizdžių dalykų:

  1. Jei norite, kad tekstas ataskaitoje būtų parašytas iš naujos eilutės, eilutės pabaigoje turėtumėte padėti bent 2 tarpus. Kitu atveju net iš naujos eilutės parašytas tekstas bus interpretuojamas kaip ta pati pastraipa.
  2. Prieš naują antraštės pavadinimą, kuris prasideda eilutės pradžioje be tarpo padėjus grotelių (#) simbolį, palikite tuščią eilutę.
  3. Analogiškai, prieš naują sąrašą, brūkšnį (***) ir daugelį kitų iš naujos eilutės rašomų raktažodžių reikia palikti tuščią eilutę.

Ir į vieną akivaizdų:

  1. Vaizdumo dėlei programa „RStudio“ raktažodžiais pažymėtas dokumento vietas (įprastai) nudažo kita spalva (pvz., pav. 15.11).

„R Markdown“ sintaksės pagrindą sudaro „Pandoc’s Markdown“ sintaksė, kuri detaliai aprašoma „Pandoc“ tinklapyje .


Užduotis 15.7

  1. Peržvelkite „Markdown“ atmintinę svetainėje „commonmark.org“ .
  2. Atlikite interaktyvias užduotis svetainėje „commonmark.org“ . Užtruks 10-20 min.
  3. Parsisiųskite „R Markdown“ atmintines PDF formatu iš „RStudio“ svetainės, išnagrinėkite „Markdown“ sintaksę ir kaip ji interpretuojama galutiniuose dokumentuose.

15.6.2 Markdown lentelių pavyzdžiai

Žemiau pateikti kelių lentelių pavyzdžiai ir tas lentelės sugeneruojantis „Markdown“ kodas. Lentelės aprašymas gali būti nurodomas naudojant raktažodį arba Table:, arba : (po raktažodžio padedamas tarpas) po lentele (rekomenduojama) arba virš lentelės. Tarp raktažodžio ir lentelės turėtų būti viena tuščia eilutė.


  1. Paprastojo stiliaus lentelė. Nauja eilutė programos kode nurodo, kad ir galutinio (ataskaitos) dokumento lentelėje taip pat bus nauja eilutė.
PAVYZDYS 1. The name of the simple-style table.
Left-alignedCentered columnRight-aligned
Row_1_Col_1Row_1_Col_2Row_1_Col_3
Row_2_Col_1Row_2_Col_2Row_2_Col_3
Row_3_Col_1Row_3_Col_2Row_3_Col_3
Left-aligned      Centered column       Right-aligned
--------------  -------------------  ----------------
Row_1_Col_1        Row_1_Col_2          Row_1_Col_3
Row_2_Col_1        Row_2_Col_2          Row_2_Col_3
Row_3_Col_1        Row_3_Col_2          Row_3_Col_3

: **PAVYZDYS 1.** The name of the simple-style table.


  1. „Markdown“ stiliaus lentelė (1 variantas).
PAVYZDYS 2. The name of the markdown-style table.
Auto-alignedLeft-alignedCenteredRight-aligned
Row_1_Col_1Row_1_Col_2Row_1_Col_3Row_1_Col_4
Row_2_Col_1Row_2_Col_2Row_2_Col_3Row_2_Col_4
Row_3_Col_1Row_3_Col_2Row_3_Col_3Row_3_Col_4
| Auto-aligned  | Left-aligned  |   Centered    | Right-aligned |
| ------------- | :------------ | :-----------: | ------------: |
|  Row_1_Col_1  |  Row_1_Col_2  |  Row_1_Col_3  |  Row_1_Col_4  |
|  Row_2_Col_1  |  Row_2_Col_2  |  Row_2_Col_3  |  Row_2_Col_4  |
|  Row_3_Col_1  |  Row_3_Col_2  |  Row_3_Col_3  |  Row_3_Col_4  |

: **PAVYZDYS 2.** The name of the markdown-style table.


  1. „Markdown“ stiliaus lentelė (2 variantas).
PAVYZDYS 3. The name of the markdown-style table.
Auto-alignedLeft-alignedCenteredRight-aligned
Row_1_Col_1Row_1_Col_2Row_1_Col_3Row_1_Col_4
Row_2_Col_1Row_2_Col_2Row_2_Col_3Row_2_Col_4
Row_3_Col_1Row_3_Col_2Row_3_Col_3Row_3_Col_4
| Auto-aligned  | Left-aligned  |   Centered    | Right-aligned |
| ------------- | :------------ | :-----------: | ------------: |
|  Row_1_Col_1  |  Row_1_Col_2  |  Row_1_Col_3  |  Row_1_Col_4  |
|  Row_2_Col_1  |  Row_2_Col_2  |  Row_2_Col_3  |  Row_2_Col_4  |
|  Row_3_Col_1  |  Row_3_Col_2  |  Row_3_Col_3  |  Row_3_Col_4  |

: **PAVYZDYS 3.** The name of the markdown-style table.


  1. Kelių eilučių stiliaus lentelė. Lentelės eilutės atskiriamos tuščia eilute programos kode.
PAVYZDYS 4. The name of the multiline style table.
Left-alignedCentered columnRight-aligned
Row_1_Col_1Row_1_Col_2Row_1_Col_3
Row_2_Col_1Row_2_Col_2Row_2_Col_3
Row_3_Col_1Row_3_Col_2Row_3_Col_3
-----------------------------------------------------
Left-aligned      Centered column      Right-aligned
---------------- -----------------  ----------------
Row_1_Col_1        Row_1_Col_2         Row_1_Col_3

Row_2_Col_1        Row_2_Col_2         Row_2_Col_3

Row_3_Col_1        Row_3_Col_2         Row_3_Col_3
-----------------------------------------------------

: **PAVYZDYS 4.** The name of the multiline style table.


  1. Kelių eilučių stiliaus lentelė be stulpelių pavadinimų.
PAVYZDYS 5. The name of the table without column names.
Row_1_Col_1Row_1_Col_2Row_1_Col_3
Row_2_Col_1Row_2_Col_2Row_2_Col_3
Row_3_Col_1Row_3_Col_2Row_3_Col_3
--------------  -----------------  ----------------
Row_1_Col_1        Row_1_Col_2          Row_1_Col_3

Row_2_Col_1        Row_2_Col_2          Row_2_Col_3

Row_3_Col_1        Row_3_Col_2          Row_3_Col_3
--------------  -----------------  ----------------

: **PAVYZDYS 5.** The name of the table without column names.


„Markdown“ lentelių generavimui yra skirtų specializuotų funkcijų, tokių kaip knitr::kable(), pander::pander() ir kitokių.

iris_6 <- head(iris)


knitr::kable(iris_6)
Sepal.LengthSepal.WidthPetal.LengthPetal.WidthSpecies
5.13.51.40.2setosa
4.93.01.40.2setosa
4.73.21.30.2setosa
4.63.11.50.2setosa
5.03.61.40.2setosa
5.43.91.70.4setosa


pander::pander(iris_6,
               caption = "**PAVYZDYS.** Pirmosios lentelės „Iris“ eilutės.  ")
-------------------------------------------------------------------
 Sepal.Length   Sepal.Width   Petal.Length   Petal.Width   Species 
-------------- ------------- -------------- ------------- ---------
     5.1            3.5           1.4            0.2       setosa  

     4.9             3            1.4            0.2       setosa  

     4.7            3.2           1.3            0.2       setosa  

     4.6            3.1           1.5            0.2       setosa  

      5             3.6           1.4            0.2       setosa  

     5.4            3.9           1.7            0.4       setosa  
-------------------------------------------------------------------

Table: **PAVYZDYS.** Pirmosios lenteles „Iris“ eilutes.  


pander::pander(iris_6,
               caption = "**PAVYZDYS.** Pirmosios lentelės „Iris“ eilutės.  ",
               style = "rmarkdown")
| Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species |
|:------------:|:-----------:|:------------:|:-----------:|:-------:|
|     5.1      |     3.5     |     1.4      |     0.2     | setosa  |
|     4.9      |      3      |     1.4      |     0.2     | setosa  |
|     4.7      |     3.2     |     1.3      |     0.2     | setosa  |
|     4.6      |     3.1     |     1.5      |     0.2     | setosa  |
|      5       |     3.6     |     1.4      |     0.2     | setosa  |
|     5.4      |     3.9     |     1.7      |     0.4     | setosa  |

Table: **PAVYZDYS.** Pirmosios lenteles „Iris“ eilutes.  


pander::pander(iris_6,
               caption = "**PAVYZDYS.** Pirmosios lentelės „Iris“ eilutės.  ",
               style = "simple")
 Sepal.Length   Sepal.Width   Petal.Length   Petal.Width   Species 
-------------- ------------- -------------- ------------- ---------
     5.1            3.5           1.4            0.2       setosa  
     4.9             3            1.4            0.2       setosa  
     4.7            3.2           1.3            0.2       setosa  
     4.6            3.1           1.5            0.2       setosa  
      5             3.6           1.4            0.2       setosa  
     5.4            3.9           1.7            0.4       setosa  

Table: **PAVYZDYS.** Pirmosios lenteles „Iris“ eilutes.  

Dabartinė paketo pander versija turi problemų dekoduojant lietuviškus ir kitokius neangliškus simbolius.


Užduotis 15.8

  1. Išbandykite lentelių generavimui skirtą „Markdown“ sintaksę.
  2. Išbandykite „Markdown“ lenteles generuojančias „R“ paketų funkcijas.

15.6.3 Paketo addins.rmd RStudio įskiepiai

„RStudio“ galimybes galima praplėsti papildiniais, vadinamais įskiepiais (angl. add-ins). Pakete addins.rmd yra įskiepių, skirtų mokytis „R Markdown“ sintaksę.

Paketas diegiamas iš „GitHub“:

if (!require(devtools)) install.packages("devtools")

devtools::install_github("GegznaV/addins.rmd")

Įdiegus, „RStudio“ „Addins“ meniu atsiranda reikiami įskiepiai (pav. 15.15).


„RStudio“ įskiepiai iš paketo **addins.rmd**.
Jei įdiegtas reikiamas paketas, įskiepiai pasiekiami per „Addins“ meniu.

Pav. 15.15: „RStudio“ įskiepiai iš paketo addins.rmd. Jei įdiegtas reikiamas paketas, įskiepiai pasiekiami per „Addins“ meniu.

Kiekvienam iš įskiepių galima sukurti greitųjų klavišų kombinaciją: tai, kaip atidaryti reikiamą meniu, parodyta pav. 15.16.


Greitųjų „RStudio“ klavišų nustatymo/keitimo meniu atidarymas.

Pav. 15.16: Greitųjų „RStudio“ klavišų nustatymo/keitimo meniu atidarymas.


Užduotis 15.9 Įskiepiui pavadinimu „Rmd: Code block: R code“ sukurkite greitųjų klavišų kombinaciją Ctrl+Alt+Shift+E. Patikrinkite, ar ji veikia.


Toliau bus pateikiama pavyzdžių, kaip naudoti addins.rmd paketo įskiepius (pav. 15.17, 15.18, 15.19, 15.20)


Pavyzdys, kaip naudoti paketo **addins.rmd** „RStudio“ įskiepius.
Teksto formatavimas „R Markdown“ sintaksės elementais.

Pav. 15.17: Pavyzdys, kaip naudoti paketo addins.rmd „RStudio“ įskiepius. Teksto formatavimas „R Markdown“ sintaksės elementais.


Paketo **addins.rmd** „RStudio“ įskiepiai, skirti sukurti antraščių pavadinimus (pirmasis būdas).

Pav. 15.18: Paketo addins.rmd „RStudio“ įskiepiai, skirti sukurti antraščių pavadinimus (pirmasis būdas).


Paketo **addins.rmd** „RStudio“ įskiepiai, skirti sukurti antraščių pavadinimus (antrasis būdas).

Pav. 15.19: Paketo addins.rmd „RStudio“ įskiepiai, skirti sukurti antraščių pavadinimus (antrasis būdas).


Paketo **addins.rmd** „RStudio“ įskiepiai sąrašams sudaryti.
Iš pradžių sukuriamas pirmo lygio sąrašas, po to -- antro. 
Pirmo sąrašo lygio elementai pavyzdyje ženklinami skaičiais, antro lygio -- mažosiomis raidėmis.

Pav. 15.20: Paketo addins.rmd „RStudio“ įskiepiai sąrašams sudaryti. Iš pradžių sukuriamas pirmo lygio sąrašas, po to – antro. Pirmo sąrašo lygio elementai pavyzdyje ženklinami skaičiais, antro lygio – mažosiomis raidėmis.


Virš daugelio „R Markdown“ elementų, tokių kaip sąrašai, antraštės, lentelės, būtina palikti vieną tuščią eilutę. Paketo addins.rmd „RStudio“ įskiepiai įprastai tai padaro.


Paketo addins.rmd įskiepiai, kurių pavadinime parašyta „(example)“ tiesiog įterpia tam tikro elemento (pvz., lentelės) pavyzdį, bet realaus teksto formatavimo neatlieka.


Užduotis 15.10 Išbandykite paketo addins.rmd įskiepių galimybes.

15.6.4 Paketo remedy RStudio įskiepiai

Kaip alternatyva (arba papildymas) paketui addins.rmd gali būti naudojamas paketas remedy: https://thinkr-open.github.io/remedy/


Užduotis 15.11 Išbandykite paketo remedy įskiepių galimybes lentelėms braižyti.

Klausimai ir komentarai