V tomto článku je vysvětleno, co je to vektor, jak vektor v jazyce R vytvořit a jak ho upravovat.

V kontextu R můžeme vektor chápat jako řadu prvků. Mohou jimi být čísla, ale i třeba logické hodnoty (TRUE/FALSE) nebo textové řetězce.

Příklad 1: vytváření vektorů

Ukažme si nyní, jak se takový vektor vytváří. Příkaz níže uloží do vektoru s názvem cisla řadu číslic od jedné do pěti. Druhý řádek příkazu níže vypíše vektor na obrazovku.

> cisla = c(1,2,3,4,5)

> cisla

[1] 1 2 3 4 5

Jak je vidět, pro vytváření vektoru můžeme použít funkci c, která to, co jí zadáme, „slepí“ dohromady v jeden celek.

Někdy není třeba všechna čísla, která mají vektor tvořit, vypisovat. Výše uvedený zápis bychom si mohli zkrátit následovně, a vygenerovat řadu čísel od jedné do pěti.

> cisla = c(1:5)

> cisla

[1] 1 2 3 4 5

Analogicky můžeme vytvořit vektor písmen. Pozor na to, že text je potřeba dávat do uvozovek.

> pismena = c("a","b","c","d","e")

> pismena  

[1] "a" "b" "c" "d" "e"

Příklad 2: operace s vektory

Vidíme, že oba vektory vytvořené v příkladu 1 mají právě pět prvků. Kdybychom to ale nevěděli, můžeme to zjistit pomocí funkce length.

> length(cisla)

[1] 5

> length(pismena)

[1] 5

S číselnými vektory můžeme provádět běžné početní operace, například můžeme k vektoru nějaké číslo přičíst nebo jej něčím vynásobit. Pokud přičítáme nebo násobíme vektor jedním konkrétním číslem, použije se daná operace postupně na všechny prvky vektoru. Tak například následující příkaz vynásobí každé číslo ve vektoru cisla dvěma:

> cisla * 2

[1]  2 4 6 8 10

Tento součin bychom si mohli chtít uložit do nového vektoru s názvem vetsi_cisla. Postupovat budeme následovně:

> vetsi_cisla = cisla * 2

Když nyní sečteme původní vektor cisla (1, 2, 3, 4, 5) s vektorem vetsi_cisla (2, 4, 6, 8, 10), budou se již sčítat první prvek s prvním, druhý s druhým apod., protože jde o dva vektory stejné délky.

> cisla + vetsi_cisla

[1]  3 6 9 12 15

Analogicky by se v případě násobení stejně dlouhých vektorů vynásobil první prvek s prvním, druhý s druhým apod. Můžete si to sami vyzkoušet s vektory cisla a vetsi_cisla.

Pokud ovšem budete zkoušet k vektoru přičíst vektor jiné délky, nebo jej takovým vektorem vynásobit, nebude si R vědět rady a vypíše chybu.

Warning message:

In cisla + c(1, 2, 3) :

  longer object length is not a multiple of shorter object length 

Shrnuto a podtrženo: máme-li vektor o pěti prvcích, pak:

  • přičteme-li k němu určité číslo, přičte se toto číslo ke každému prvku vektoru;
  • přičteme-li k němu jiný vektor o pěti prvcích, sečte se první číslo s prvním, druhé s druhým apod.;
  • přičteme-li k němu vektor o jiném rozměru než pět prvků, vypíše R

Totéž platí pro další operace (odečítání, násobení, dělení apod.) a samozřejmě pro vektory libovolné délky.

Příklad 3: prodlužování, zkracování a úpravy vektorů

Vezměme si náš vektor cisla. Co kdybychom chtěli na konec vektoru přidat další číslo?

Stačí opět použít nám již známou funkci c. Například následující příklad přepíše původní vektor cisla novým vektorem cisla, který vypadá tak, že původní vektor cisla rozšíří o šestku.

> cisla = c(cisla, 6)

> cisla

[1] 1 2 3 4 5 6

Mohli bychom samozřejmě rozšířit vektor i na začátku, nejen na konci, například o nulu, a to následovně:

> cisla = c(0, cisla)

> cisla

[1] 0 1 2 3 4 5 6

Kromě toho bychom mohli chtít nahradit nějaký prvek vektoru jiným. Konkrétní prvek vektoru si „vyfiltrujeme“ pomocí hranatých závorek. Například třetí prvek vektoru cisla, čili dvojku, bychom získali takto:

> cisla[3]

[1] 2

Pokud nyní chceme nahradit tento prvek jiným, například dvacítkou, postupujeme následovně:

> cisla[3] = 20

> cisla

[1] 0 1 20 3 4 5 6

Jinak řečeno, třetímu prvku vektoru přiřadíme hodnotu 20.

Autor článku: Lenka Fiřtová