10. Duomenų lentelės peržiūra

Įsikėlus duomenis įprasta juos peržiūrėti. Tai daroma siekiant susipažinti su duomenimis, jų struktūra bei patikrinti, ar jie buvo įkelti taip, kaip tikėjomės (pvz., ar visos buvo įkeltos visos duomenų eilutės).

10.1 Duomenys, kuriuos naudosime

Šio skyriaus pavyzdžiuose ir klausimuose naudosime duomenų lenteles „iris“, „npk“, „swiss“ bei „women“, kurios yra „R“ paketo datasets dalis. Daugiau apie lenteles rašoma jų dokumentacijoje, kuri atveriama pele pažymėjus lentelės pavadinimą, parašytą redaktoriaus lange arba konsolėje, ir paspaudus F1. Taip pat parašius tokią komandą: klaustuką ? ir po jo – lentelės pavadinimą, pvz., ?iris, ?npk ar ?swiss (vieną komandą vienu metu). Jei naudojate „RStudio“, aprašymai atsiras „Help“ kortelėje.

Mokomuosius duomenis iš paketų užsikraukime naudodami funkciją data():

data("iris",     package = "datasets")
data("npk",      package = "datasets")
data("swiss",    package = "datasets")
data("women",    package = "datasets")
data("CO2",      package = "datasets")
data("starwars", package = "dplyr")

10.2 Pagrindinės peržiūros funkcijos

Įsikėlus duomenų lenteles, įprasta susipažinti su duomenų lentelės struktūra ir susidaryti įspūdį, koks jos turinys. Duomenų lentelių struktūros peržiūrai galima naudoti šias funkcijas:

  1. class() – rodyti duomenų lentelės „R“ klasę. Jei yra kelios klasės, žiūrėkite į pirmąją. Įprastai lentelės skiriasi tik tuo, kaip yra atspausdinamos:
    1. įprastinė duomenų lentelė (klasė data.frame);
    2. „tibble“ duomenų lentelė (klasė tbl_df, oficiali tidyverse duomenų lentelės klasė iš paketo tibble);
    3. data.table klasės duomenų lentelė (iš paketo data.table. Šis paketas skirtas didelėms duomenų lentelėms, kai norima didelės spartos apdorojant duomenis).
  2. is.data.frame() – atsakymas bus TRUE, jei tai duomenų lentelė ir FALSE – kitu atveju;
  3. dim() – rodyti dydį („dimensiją“): eilučių ir stulpelių skaičių lentelėje (galioja ES taisyklė – pirma eilutės, po to stulpeliai). Gali būti naudojamos ir funkcijos nrow() ir ncol() kurios rodo arba vien tik eilučių, arba vien tik stulpelių skaičių. Jei duomenų lentelėje labai daug eilučių ar, ypač, stulpelių (pvz., 1000), pagal tai turėtume nuspręsti, kurias funkcijas toliau verta naudoti;
  4. glimpse() iš paketo dplyr (patogesnis str() analogas) – glaustai rodyti struktūrą: eilučių (Observations) ir stulpelių (Variables) skaičių, stulpeliuose esančių duomenų tipus ir kelias pirmąsias reikšmes;
  5. View() – peržiūrėti lentelę atskirame lange (pastaba: pavadinime V didžioji);
  6. head() – rodyti pirmąsias eilutes;
  7. tail() – rodyti paskutines eilutes;
  8. names() – rodyti kintamųjų pavadinimus (duomenų lentelių atveju rezultatas bus tas pats, kaip funkcijos colnames());
  9. colnames() – rodyti stulpelių pavadinimus;
  10. rownames() – rodyti eilučių pavadinimus.

Šių funkcijų skliaustuose nurodomas dominančios lentelės pavadinimas be kabučių. Jei, tarkime, norime patyrinėti duomenų lentelę „iris“ – štai keletas pavyzdžių, kaip naudoti šias funkcijas:

library(tidyverse)
dim(iris)
head(iris)
tail(iris)
glimpse(iris)

Pastebėkite, kad po to, kai užkrovėme duomenis (lentelės), toliau jų pavadinimą rašome be kabučių, nes duomenų lentelė (šiuo atveju „iris“) — jau „R“ atmintyje esantis objektas.


Užduotis 10.1 Naudodamiesi funkcijomis class(), dim(), glimpse(), head(), tail(), names(), colnames(), rownames(), View(), patyrinėkite duomenų lenteles iris, npk, swiss, women, CO2 (CO2 – visos raidės didžiosios). Jos užkraunamos iš „R“ paketo datasets. Atsakykite į klausimus:

  1. Kokia duomenų lentelės klasė? Ar „data.frame“?
  2. Kiek lentelėje objektų?
  3. Kiek kintamųjų?
  4. Kokie kintamųjų pavadinimai?
  5. Ar lentelė turi eilučių pavadinimus, ar tik eilučių numerius?

10.3 Kaip atpažinti stulpeliuose esančių duomenų klases?

Kiekvienas stulpelis lentelėje yra tam tikro tipo statistinis kintamasis. „R“ kiekvienam kintamajam – lentelės stulpeliui – suteikia „R“ objekto klasę, kurią galime sužinoti keliais būdais. Jei duomenų lentelę atspausdinsime R Markdown dokumente dirbdami Notebook režimu (kol kas nesimokėme), rezultatas bus panašus į tą, kuris pateiktas paveiksle 10.1.

Duomenų lentelė atspausdinta *R Markdown* dokumente dirbant *Notebook* režimu (nesimokėme).
Kintamųjų (lentelės stulpelių) klasės pateiktos po pavadinimais trikampiuose skliaustuose.
Eilučių skaičius -- lentelės apačioje („4 rows“).

Pav. 10.1: Duomenų lentelė atspausdinta R Markdown dokumente dirbant Notebook režimu (nesimokėme). Kintamųjų (lentelės stulpelių) klasės pateiktos po pavadinimais trikampiuose skliaustuose. Eilučių skaičius – lentelės apačioje („4 rows“).

Naudodami funkciją glimpse(), gausime tokį rezultatą:

## Rows: 4
## Columns: 6
## $ lapu_skaicius   <int> 24, 22, 28, 25
## $ lapu_ilgis      <dbl> 1.3, 1.6, 2.2, 1.1
## $ kvapo_stiprumas <ord> silpnas, vidutinis, stiprus, stiprus
## $ ziedu_spalva    <fct> raudona, geltona, geltona, balta
## $ ar_augo_lauke   <lgl> FALSE, TRUE, TRUE, FALSE
## $ komentaras      <chr> "-", "-", "tirta ryte", "-"


Čia „R“ parašo eilučių (4) ir stulpelių (6) skaičių, išvardija kintamųjų pavadinimus (lapu_skaicius, lapu_ilgis, …), jų klases (int, num ir t.t.), kelias pirmąsias reikšmes (pvz., 24, 22, 28, …).

Dažniausiai naudojamų „R“ duomenų tipų žymėjimai:

  1. dbl (double) arba num (numeric) – realusis skaičius (skaičius su kableliu);
  2. int (integer) – sveikasis skaičius;
  3. fct arba Factor – faktorius, kategorinis (nominalusis) kintamasis, kurio reikšmės neturi natūralios tvarkos;
  4. ord arba Ord.factor (ordered factor) – ranginis kintamasis (faktorius, kurio reikšmės turi eilės tvarką);
  5. lgl arba logi (logical) – loginis kintamasis;
  6. chr (character) – tekstas (simbolių eilutės);
  7. date arba Date – data;
  8. dttm (datetime), arba POSIXct, POSIXlt ir kiti – data ir laikas;
  9. list – stulpelis sąrašas (sudėtingesnės duomenų struktūros).
Užduotis 10.2 Naudodami funkciją glimpse(), nustatykite, kokie „R“ duomenų tipai yra lentelių iris, npk, swiss, women bei starwars stulpeliuose.

10.4 Teorinis duomenų tipas ir jam tinkama R klasė

Statistikos kurso metu dirbsime tik su kiekybiniais (skaitiniais) ir su kategoriniais (nominaliaisiais ir ranginiais) kintamaisiais. „R“ aplinkoje kintamiesiems turi būti parinktos tinkamos klasės. Tada „R“ braižys tinkamus grafikus, atliks tinkamas statistines suvestines, leis atlikti tai duomenų klasei tinkamas statistines analizes.


Teoriniai kintamųjų tipai ir jiems tinkamos R klasės:

  • Kiekybiniams (skaitiniams):
    • tolydiesiems tinka:
      • klasė „numeric“ (dar vadinama „double“) – įprastinis pasirinkimas.
      • klasė „integer“ – taip pat tinka;
    • diskretiesiems tinka:
      • klasė „integer“ – įprastinis pasirinkimas;
      • klasė „numeric“ („double“) – taip pat tinka.
  • Kokybiniams (kategoriniams):
    • nominaliesiems – klasė „factor“;
    • ranginiams – klasė „ordered“.

Statistinei duomenų analizei klasės „logical“ bei „character“ dažniausiai yra netinkamos. Jos įprastai verčiamos į kategorinių duomenų klases (factor, ordered).


Kintamųjų klasės keitimas aprašomas skyriuje apie duomenų lentelių pertvarkymą. Įprastai jis bus susijęs su funkcijos mutate() naudojimu, aprašytu skyriuje „?? [Kintamojo klasės keitimas]“).

Užduotis 10.3 Dar kartą patyrinėkite duomenų lenteles iris, npk, swiss bei women:

  1. Kas yra tiriamieji? (Skaitykite duomenų lentelės aprašyme – dokumentacijoje).
  2. Koks teorinis kintamojo tipas (tolydieji, skaitiniai diskretieji, ranginiai, nominalieji duomenys) turėtų tikti kiekvienam stulpeliui teoriškai? Atsakymą grįskite duomenų lentelės aprašyme (dokumentacijoje) pateikta informacija bei funkcijos glimpse() rezultatais.
  3. Kokiomis „R“ objektų klasėmis išsaugoti šie kintamieji iš tiesų?
  4. Ar pagal teorinį kintamųjų tipą (nominalusis, ranginis, diskretusis, tolydusis) „R“ klasės (factor, ordinal, numeric, integer ir kitos) parinktos tinkamai?

Atsakymą apie kintamuosius surašykite į tokią lentelę:

Lentelės pavadinimasKintamojo pavadinimasTeorinis kintamojo duomenų tipasKintamojo „R“ klasėAr klasė duomenims parinkta teisingai?

Klausimai ir komentarai