apply(), lapply(), sapply() a tapply() v R
V tomto článku sa dozvieme o funkciách apply(), lapply(), sapply() a tapply() v R Programovací jazyk.
Kolekcia apply() je súčasťou balíka R essential. Táto rodina funkcií nám pomáha aplikovať určitú funkciu na určitý dátový rámec, zoznam alebo vektor a vrátiť výsledok ako zoznam alebo vektor v závislosti od funkcie, ktorú používame. V rodine funkcií apply() sú tieto štyri typy funkcií:
funkciu apply().
Funkcia apply() nám umožňuje aplikovať funkciu na riadky alebo stĺpce matice alebo dátového rámca. Táto funkcia berie maticu alebo dátový rámec ako argument spolu s funkciou a či sa má použiť riadkom alebo stĺpcom a vráti výsledok vo forme vektora alebo poľa alebo zoznamu získaných hodnôt.
Syntax: použiť (x, okraj, funkcia)
Parametre:
x: určuje vstupné pole vrátane matice. margin: Ak je okraj 1, funkcia sa použije na celý riadok, ak je okraj 2, použije sa na celý stĺpec. funkcia: určuje funkciu, ktorá sa má použiť na vstupné dáta.
Príklad:
Tu je základný príklad, ktorý ukazuje použitie funkcie apply() pozdĺž riadkov, ako aj stĺpcov.
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ýkon:
funkcia lapply().
Funkcia lapply() nám pomáha pri aplikácii funkcií na objekty zoznamu a vracia objekt zoznamu rovnakej dĺžky. Funkcia lapply() v jazyku R berie zoznam, vektor alebo dátový rámec ako vstup a poskytuje výstup vo forme objektu zoznamu. Keďže funkcia lapply() aplikuje určitú operáciu na všetky prvky zoznamu, nepotrebuje MARGIN.
Syntax: lapply( x, zábava)
Parametre:
x: určuje vstupný vektor alebo objekt. fun: určuje funkciu, ktorá sa má použiť na vstupné dáta.
Príklad:
Tu je základný príklad, ktorý ukazuje použitie funkcie lapply() pre 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ýkon:
funkcia sapply().
Funkcia sapply() nám pomáha pri aplikácii funkcií na zoznam, vektor alebo dátový rámec a vracia pole alebo maticový objekt rovnakej dĺžky. Funkcia sapply() v jazyku R berie ako vstup zoznam, vektor alebo dátový rámec a poskytuje výstup vo forme poľa alebo maticového objektu. Keďže funkcia sapply() aplikuje určitú operáciu na všetky prvky objektu, nepotrebuje MARGIN. Je to rovnaké ako lapply() s jediným rozdielom v type vráteného objektu.
Syntax: sappy (x, zábava)
Parametre:
x: určuje vstupný vektor alebo objekt. fun: určuje funkciu, ktorá sa má použiť na vstupné dáta.
Príklad:
Tu je základný príklad, ktorý ukazuje použitie funkcie sapply() pre 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ýkon:
funkcia tapply().
Tapply() nám pomáha vypočítať štatistické miery (priemer, medián, min, max, atď.) alebo samostatne napísanú funkčnú operáciu pre každú faktorovú premennú vo vektore. Pomáha nám vytvoriť podmnožinu vektora a potom aplikovať niektoré funkcie na každú z podmnožín. Napríklad v organizácii, ak máme údaje o mzdách zamestnancov a chceme nájsť strednú mzdu pre mužov a ženy, môžeme použiť funkciu tapply() s mužom a ženou ako faktor premennej pohlavie.
Syntax: tapply( x, index, fun)
Parametre:
x: určuje vstupný vektor alebo objekt. index: určuje vektor faktora, ktorý nám pomáha rozlíšiť údaje. fun: určuje funkciu, ktorá sa má použiť na vstupné dáta.
Príklad:
Tu je základný príklad, ktorý ukazuje použitie funkcie tapply() na súbore údajov diamonds, ktorý poskytuje knižnica balíkov 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ýkon: