logo

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)

java matematika náhodná

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

strojopis pro každého




# 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: