Načítanie dát

Dáta je možné do premennej uložiť napísaním daných hodnôt do konzoly (čo je v prípade veľkého rozsahu dát neefektívne) alebo načítaním zo súboru. Tu Vám uvedieme niektoré funkcie, ako načítať dáta efektívnejšie.

Načítanie dát funkciou scan

Táto funkcia je veľmi flexibilná a používa sa na import dát. Môže byť použitá na čítanie dát, čísel, znakov ako aj načítanie priamo zo súboru. Taktiež je možné pomocou tejto funkcie čítať dáta priamo z konzoly. Defaultný oddeľovač hodnôt pri načítavaní z konzoly je medzera, tabulátor alebo nový riadok. Táto funkcia vracia zoznam (list) alebo vektor. Ak chceme prestať načítavať hodnoty, len spustíme prázdny riadok (enter).

Zadávanie dát priamo z konzoly

Tu Vás hneď na začiatku upozorníme na možné chyby. Takéto dáta môžu byť iba reálne čísla, pričom desatinné miesta musia byť oddelené bodkou. Dáta nemusíme vpisovať ručne, dajú sa vložiť aj prekopírovaním zo schránky. Avšak aj takéto dáta musia byť oddelené medzerou, riadkom alebo tabulátorom.

x <- scan() #funkcia na načítanie dát
3.0 5.1 6.5 9.8 #zoznam dát, ktoré chceme načítať
2.1 5.7 6.0

x #zavolaný výpis premennej x 
[1] 3.0 5.1 6.5 9.8 2.1 5.7 6.0

Zadávanie stringových dát priamo z konzoly

 
y <- scan(what= "") #funkcia na načítanie dát
1: jozko #zoznam dát, ktoré chceme načítať
2: mrkvicka
3: alexander
4: martin

y #zavolaný výpis premennej y
[1] "jozko" "mrkvicka" "alexander" "martin"

Načítanie zo súboru a uloženie do zoznamu

 
x <- scan("d:/scan.txt", what=list(vek=0, meno="")) #funkcia na načítanie dát

x #zavolaný výpis premennej x
$vek #zavolaný výpis premennej x, konkrétna hodnota vek
[1] 12 24 35 20
$meno #zavolaný výpis premennej x, konkrétna hodnota meno
[1] "jozko" "mrkvicka" "david" "miroslav"

Načítanie z toho istého súboru, ale uloženie iba mien ako vektor

x <- scan("d:/scan.txt", what=list(NULL, meno=character()))

x <- x[sapply(x, length) > 0]
x #zavolaný výpis premennej x
$meno #zavolaný výpis premennej x, konkrétna hodnota meno
[1] "jozko" "mrkvicka" "david" "miroslav"
is.vector(x) #overenie, či je premenná x vektor
[1] TRUE

Načítanie z .xlsx súboru

R Cran používa ako desatinný oddeľovač bodku. Čiže ak načítavame čísla s desatinnými miestami, treba si zmeniť v Exceli nastavenie: oddelovač desatinných miest (tlačidlo Office – Možnosti programu Excel – Rozšírené – v časti Možnosti úprav nastaviť Oddelovač desatinných miest na bodku).

Pre import dát z formátov .xlsx treba nainštalovať a načítať knižnicu xlsx. Ako načítať a nainštalovať túto knižnicu sa dozviete tu: Knižnice). Načítanie dát sa realizuje pomocou príkazu:

 
read.xlsx(file, sheetIndex, sheetName=NULL, rowIndex=NULL, colIndex=NULL, header=TRUE)
#file – meno súboru, z ktorého dáta sa majú načítať (ak neobsahuje absolútnu cestu (C:Ekonometria data.xsls)
#cesta sa považuje za relatívnu (data.xslx), vzhľadom na pracovný adresár 
getwd() #funkcia na zistenie pracovného adresára
#sheetIndex – index listu, z ktorého sa majú dáta importovať
#sheetName – meno listu, z ktorého sa majú dáta importovať
#rowIndex – index riadku, ktorý sa má importovať
#colIndex – index stĺpca, ktorý sa má importovať
#header – ak je nastavené na TRUE, tak 1. riadok daného stĺpca bude názov premennej

Príklad:
Chceme načítať 1. stĺpec zo súboru, ktorý sa nazýva dataSem.xlsx. Tento stĺpec sa nachádza v 1. liste a chceme, aby 1. riadok tohto stĺpca bol názvom tejto premennej.

time <- read.xlsx("c://ekonometria//dataSem.xlsx",1,colIndex=1, header=TRUE)
#takto načítané dáta sú uložené v zozname
time = unlist(time) #príkaz na prehodenie zo zoznamu do vektoru

Načítanie z CSV súboru

Na rozdiel od .xls a .xlsx súborov, .csv súbor nepotrebuje načítať žiadnu knižnicu. Načítanie dát sa realizuje pomocou jedným z dvojice príkazov:

 
read.csv(file, header = TRUE, sep = ",", dec=".", ...)
read.csv2(file, header = TRUE, sep = ";", dec=",", ...)
#file - meno súboru
#header - logická premenná (TRUE or FALSE) indikujúca, či súbor obsahuje názvy stĺpcov v prvom riadku
#sep - znamienko oddeľovača, hodnoty v riadkoch v súbore sú oddeľované pomocou tohto znaku
#dec - desatinné znamienko
?read.csv #funkcie obsahujú ešte ďalšie parametre, ich popis nájdeme pomocou tohto príkazu

Príklad:
Načítanie obsahu súboru test.csv do premennej test_csv.

test_csv <- read.csv("C://Ekonometria//test.csv") 
#načítanie obsahu súboru test.csv do premennej test_csv
test_csv2 <- read.csv("C://Ekonometria//test.csv2")
#stĺpce sú oddelené "," a desatinné znamienko je "."

Comments are closed.