Slovník | Vyhledávání | Mapa webu
 
Základy informatiky pro biologyVýpočetní matematické systémy Výuka jazyka R Další příkazy v R Práce s daty

Logo Matematická biologie

Práce s daty

Funkce pro načítání dat

scan(file, what, sep, dec, nmax) je funkce pro načtení vektoru nebo seznamu z konzole nebo souboru. Popis argumentů:
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=",")
 
V1
V2
V3
V4
V5
1
1
2
3
4
5
2
3
2
1
1
2

 

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
r1
1
2
3
4
5
r2
3
2
1
1
2
 
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)
 
sl1
sl2
sl3
sl4
sl5
r1
1
2
3
4
5
r2
3
2
1
1
2
 
> 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í.

Dalšími užitečnými funkcemi jsou attach() a detach().
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
 
 [,1]
 [,2]
[1,]
2
5
[2,]
3
6
[3,]
4
7

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.

 
 
 

1Od verze 2.0.0 jsou všechny datové soubory přístupné přímo zavoláním jejich názvu. Mnohé balíčky ovšem stále používají dřívější způsob volání pomocí data(nazev), jenž může být stále využíván i dnes.
 
vytvořil Institut biostatistiky a analýz Lékařské fakulty Masarykovy univerzity