
Práce s daty
Funkce pro načítání dat
file |
textový řetězec uvádějící cestu k souboru, při načítání ze schránky file="clipboard"
|
what | typ načítané hodnoty (numerické, komplexní,...) |
sep |
znak, kterým jsou odděleny jednotlivé načítané položky, např. sep=","
|
dec | znak pro desetinnou čárku |
nmax | maximální počet hodnot, který má být načten |
Postup pro zobrazení hodnot uložených ve schránce:
1. zkopírovat příslušná data, např. 2; 4; 6; 1; 3; 5
2. zavolat funkci scan()
> x <- scan(file="clipboard", sep=";")
Po jejím zavolání se objeví oznámení:
Read 6 items
> x
[1] 2 4 6 1 3 5
> x <- scan(file="clipboard", sep=";", what=character())
Read 6 items
> x
[1] "2" "4" "6" "1" "3" "5"
|
Další takovou funkcí je read.table(file, header, sep, dec, row.names, col.names), která načítá data do tabulky dat (data.frame)
file, sep, dec | viz funkce scan() |
header | logická hodnota, zda je v datech obsažena hlavička |
row.names | textový řetězec názvů řádků nebo číslo odkazující na sloupec názvů |
colnames | vektor názvů sloupců |
1, 2, 3, 4, 5
3, 2, 1, 1, 2
> read.table(file="clipboard", sep=",")
1 2 3 4 5 r1
3 2 1 1 2 r2
> read.table(file="clipboard", row.names=6, col.names=c("sl1", "sl2", "sl3", "sl4", "sl5",
+ "sl6")) přestože poslední sloupec obsahuje názvy řádků, argument col.names musí obsahovat jeho název i tohoto sloupce ("sl6"), i když nebude vytištěn
sl1 sl2 sl3 sl4 sl5 sl6
1 2 3 4 5 r1
3 2 1 1 2 r2
> read.table(file="clipboard", row.names=6, header=T)
> load(file="dunaj.dat") načtení dat ze souboru dunaj.dat (data znázorňující kolísání [m3/s] Dunaje během roku, [8])
> dunaj
[1] 1987 1728 1862 2083 2143 2187 2588 2224 2001
[10] 1767 1460 1444
|
Pro usnadnění práce s daty jazyk R obsahuje okolo sta vestavěných datových souborů (v balíčku datasets). Funkce data() zobrazí seznam dostupných datových souborů. K zobrazení vybraných souborů slouží příkaz data(nazev, package)1, argument package slouží ke specifikaci balíčku, ve kterém se data nachází.
Funkce attach() má použití zejména u seznamů a datových tabulek, kde umožňuje vypisování jejich složek přímo, tzn. bez uvedení názvu objektu. Argumentem funkce je název objektu, u kterého chceme výše uvedené provést.
> tabulka <- data.frame(id=c(1:6), skupina=c(1, 2, 2, 1, 2, 1), hodnota=runif(6, 2, 4))
> id
Error : object 'id' not found
> attach(tabulka)
>id
[1] 1 2 3 4 5 6
|
Opakem k funkci attach je funkce detach, která naopak znemožní, aby byly složky volány pouze svým názvem, nikoliv uvedením i názvu objektu.
> detach(tabulka)
> id
Error : object 'id' not found
> tabulka$id
[1] 1 2 3 4 5 6
|
Ukládání dat
K ukládání objektů object do souboru specifikovaného argumentem file="" slouží funkce save(object, file=""). Objekt může být následně načten pomocí funkce load.
> l <- list(v=1:5, mat=matrix(2:7, 3)) pro ukládání více objektů současně je vhodné seskupit tyto objekty do seznamu
> save(l, file="seznam.txt")}
> nacteni <- load("seznam.txt") načtení uloženého souboru seznam.txt, který obsahuje proměnnou l
> nacteni
[1] "l"
> l
$v
[1] 1 2 3 4 5
$mat
|
Posloupnost jednotlivých příkazů i s jejich výstupy můžeme uložit v menu File Save to File.... Historii příkazů můžeme uložit v menu File
Save History nebo příkazem savehistory(file=".RHistory"), příkazem loadhistory(file=".RHistory") ji následně můžeme načíst. V případě, že otevíráme dříve uložený soubor, historie příkazů je načtena automaticky s ním.