Slovník | Vyhledávání | Mapa webu
 
Základy informatiky pro biologyVýpočetní matematické systémy Výuka jazyka R Vektory Faktory

Logo Matematická biologie

Faktory

Faktory jsou speciálním případem vektorů s nominálními nebo ordinálními daty. Jedná se o datovou strukturu, která umožňuje přiřadit smysluplné názvy jednotlivým kategoriím. Na první pohled vypadají faktory podobně jako numerické a textové vektory, ale není tomu tak. Faktory v sobě navíc obsahují informaci Levels - jedná se o konečnou množinu hodnot, kterých kategorická proměnná může nabývat. Jednotlivé prvky Levels jsou uspořádány podle jejich typu (numericky nebo abecedně), hodnoty NA zde ovšem nejsou zahrnuty.

> factor(c("kocka", "kun", NA, "pes", "kocka", "pes", "pes"))
[1]    kocka    kun    <NA>    pes    kocka    pes    pes
Levels:   kocka    kun    pes

Poznámka. Je důležité si uvědomit, že prvky numerického faktoru nejsou interpretovány jako numerické hodnoty:

> mean(factor(1:5))    funkce mean slouží k výpočtu průměru}
[1]    NA
Warning message:
In mean.default(factor(1:5)) :
argument is not numeric or logical: returning NA

Funkce factor() má několik volitelných argumentů. Argument levels může být použit k definování úrovní (Levels) faktoru. Např. můžeme vytvořit faktor i s úrovní, která se mezi daty nevyskytuje:

> factor(c(2, 3, 1, NA, 3, 2), levels=1:4)    hodnoty NA nejsou do Levels vypisovány
[1]    2    3    1    <NA>    3    2    
Levels:    1    2    3    4

Argument levels rovněž může sloužit ke změně pořadí prvků úrovní:

> factor(c(2, 3, 1, NA, 3, 2), levels=c(1, 3, 2, 4))
[1]       3    1    NA    3    2

Levels:    1    3    2    4

Argument labels se používá k definici popisků:

> factor(c(0, 1, 1, 0, 1), labels=c("nepritomen", "pritomen"))
[1]   nepritomen    pritomen    pritomen    nepritomen    pritomen

Levels:    nepritomen    pritomen}

Argument exclude ignoruje vybrané prvky, tyto prvky jsou nahrazeny hodnotami NA

> factor(c(2, 3, 1, NA, 3, 2), exclude=3)
[1]    2    <NA>    1    <NA>    <NA>    2

Levels:    1    2    <NA>
> factor(c(2, 3, 1, NA, 3, 2), exclude=NULL)  argument exclude=NULL slouží pro zobrazení hodnoty NA v Levels
[1]    2    3    1    <NA>    3    2

Levels:    1    2    3    <NA>

Argument ordered=TRUE slouží k seřazení úrovní faktoru. Jediným rozdílem na výstupu je zobrazení porovnávacího operátoru < mezi jednotlivými úrovněmi faktoru. Tuto vlastnost můžeme použít např. při porovnávání jednotlivých prvků.

> (velikost <- factor(c(3, 1, 5, 4, 3, 2, 4), labels=c("mravenec", "hlemyzd", "koza", "slon",

+ "zirafa")))
[1]    koza    mravenec    zirafa    slon    koza    hlemyzd    slon

Levels:    mravenec    hlemyzd    koza    slon    zirafa
> (velikost <- factor(c(3, 1, 5, 4, 3, 2, 4), labels=c("mravenec", "hlemyzd", "koza", "slon",

+ "zirafa"), ordered=TRUE))
[1]    koza    mravenec    zirafa    slon    koza    hlemyzd    slon

Levels:    mravenec < hlemyzd < koza < slon < zirafa
> velikost >= "koza"    vrací vektor logických hodnot, na pozicích splňujících podmínku jsou hodnoty TRUE, na ostatních pozicích FALSE
[1]    TRUE    FALSE    TRUE    TRUE    TRUE    FALSE    TRUE

 

 
vytvořil Institut biostatistiky a analýz Lékařské fakulty Masarykovy univerzity