apply(), lapply(), sapply() a tapply() v R

V tomto článku se dozvíme o funkcích apply(), lapply(), sapply() a tapply() v Programovací jazyk R.

Kolekce apply() je součástí balíčku R essential. Tato rodina funkcí nám pomáhá aplikovat určitou funkci na určitý datový rámec, seznam nebo vektor a vrátit výsledek jako seznam nebo vektor v závislosti na funkci, kterou používáme. V rodině funkcí apply() jsou následující čtyři typy funkcí:

funkce apply().

Funkce apply() nám umožňuje aplikovat funkci na řádky nebo sloupce matice nebo datového rámce. Tato funkce bere matici nebo datový rámec jako argument spolu s funkcí a zda má být aplikována na řádek nebo sloupec a vrací výsledek ve formě vektoru nebo pole nebo seznamu získaných hodnot.

Syntax: použít(x, okraj, funkce)

Parametry:

    x: určuje vstupní pole včetně matice. margin: Pokud je okraj 1, použije se funkce přes řádek, pokud je okraj 2, použije se napříč sloupcem. funkce: určuje funkci, která má být aplikována na vstupní data.

Příklad:

Zde je základní příklad, který ukazuje použití funkce apply() podél řádků i sloupců.

R




# create sample data> sample_matrix <-> matrix> (C <-(1:10),nrow=3, ncol=10)> > print> (> 'sample matrix:'> )> sample_matrix> > # Use apply() function across row to find sum> print> (> 'sum across rows:'> )> apply> ( sample_matrix, 1, sum)> > # use apply() function across column to find mean> print> (> 'mean across columns:'> )> apply> ( sample_matrix, 2, mean)>

Výstup:

funkce lapply().

Funkce lapply() nám pomáhá při aplikaci funkcí na objekty seznamu a vrací objekt seznamu stejné délky. Funkce lapply() v jazyce R bere jako vstup seznam, vektor nebo datový rámec a poskytuje výstup ve formě objektu seznamu. Protože funkce lapply() aplikuje určitou operaci na všechny prvky seznamu, nepotřebuje MARGIN.

Syntax: laply (x, zábava)

Parametry:

    x: určuje vstupní vektor nebo objekt. fun: určuje funkci, která má být aplikována na vstupní data.

Příklad:

Zde je základní příklad, který ukazuje použití funkce lapply() pro vektor.

R




# create sample data> names <-> c> (> 'priyank'> ,> 'abhiraj'> ,> 'pawananjani'> ,> > 'sudhanshu'> ,> 'devraj'> )> print> (> 'original data:'> )> names> > # apply lapply() function> print> (> 'data after lapply():'> )> lapply> (names, toupper)>

Výstup:

funkce sapply().

Funkce sapply() nám pomáhá při aplikaci funkcí na seznam, vektor nebo datový rámec a vrací pole nebo maticový objekt stejné délky. Funkce sapply() v jazyce R bere jako vstup seznam, vektor nebo datový rámec a poskytuje výstup ve formě pole nebo maticového objektu. Protože funkce sapply() aplikuje určitou operaci na všechny prvky objektu, nepotřebuje MARGIN. Je to stejné jako lapply() s jediným rozdílem v typu vráceného objektu.

Syntax: sappy (x, zábava)

Parametry:

    x: určuje vstupní vektor nebo objekt. fun: určuje funkci, která má být aplikována na vstupní data.

Příklad:

Zde je základní příklad, který ukazuje použití funkce sapply() pro vektor.

R




# create sample data> sample_data <-> data.frame> ( x=> c> (1,2,3,4,5,6),> > y=> c> (3,2,4,2,34,5))> print> (> 'original data:'> )> sample_data> > # apply sapply() function> print> (> 'data after sapply():'> )> sapply> (sample_data, max)>

Výstup:

funkce tapply().

Tapply() nám pomáhá vypočítat statistické míry (průměr, medián, min, max, atd..) nebo samostatně zapsanou funkční operaci pro každou faktorovou proměnnou ve vektoru. Pomáhá nám vytvořit podmnožinu vektoru a poté aplikovat některé funkce na každou z podmnožin. Například v organizaci, pokud máme údaje o platu zaměstnanců a chceme najít střední plat pro muže a ženy, můžeme použít funkci tapply() s mužem a ženou jako faktorem proměnné pohlaví.

Syntax: tapply(x, index, fun)

Parametry:

    x: určuje vstupní vektor nebo objekt. index: určuje vektor faktoru, který nám pomáhá rozlišit data. fun: určuje funkci, která má být aplikována na vstupní data.

Příklad:

Zde je základní příklad, který ukazuje použití funkce tapply() na datové sadě diamonds, kterou poskytuje knihovna balíčků tidyverse.

R




# load library tidyverse> library> (tidyverse)> > # print head of diamonds dataset> print> (> ' Head of data:'> )> head> (diamonds)> > # apply tapply function to get average price by cut> print> (> 'Average price for each cut of diamond:'> )> tapply> (diamonds$price, diamonds$cut, mean)>

Výstup: