apply(), lapply(), sapply() i tapply() a R
En aquest article, aprendrem sobre les funcions apply(), lapply(), sapply() i tapply() a la Llenguatge de programació R.
La col·lecció apply() és una part del paquet essencial de R. Aquesta família de funcions ens ajuda a aplicar una determinada funció a un determinat marc de dades, llista o vector i a retornar el resultat com a llista o vector en funció de la funció que utilitzem. Hi ha aquests quatre tipus de funcions a la família de funcions apply():
funció aplicar().
La funció apply() ens permet aplicar una funció a les files o columnes d'una matriu o marc de dades. Aquesta funció pren la matriu o el marc de dades com a argument juntament amb la funció i si s'ha d'aplicar per fila o columna i retorna el resultat en forma de vector o matriu o llista de valors obtinguts.
Sintaxi: aplicar (x, marge, funció)
Paràmetres:
x: determina la matriu d'entrada inclosa la matriu. marge: si el marge és 1, la funció s'aplica a través de la fila, si el marge és 2 s'aplica a través de la columna. funció: determina la funció que s'ha d'aplicar a les dades d'entrada.
Exemple:
Aquí hi ha un exemple bàsic que mostra l'ús de la funció apply() al llarg de les files i les columnes.
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)> |
Sortida:
funció lapply().
La funció lapply() ens ajuda a aplicar funcions als objectes llista i retorna un objecte llista de la mateixa longitud. La funció lapply() del llenguatge R pren una llista, un vector o un marc de dades com a entrada i dóna sortida en forma d'objecte de llista. Com que la funció lapply() aplica una determinada operació a tots els elements de la llista, no necessita un MARGE.
Sintaxi: solapa (x, divertit)
Paràmetres:
x: determina el vector d'entrada o un objecte. fun: determina la funció que s'ha d'aplicar a les dades d'entrada.
Exemple:
Aquí hi ha un exemple bàsic que mostra l'ús de la funció lapply() a un vector.
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)> |
Sortida:
funció sapply().
La funció sapply() ens ajuda a aplicar funcions en una llista, vector o marc de dades i retorna un objecte matriu o matriu de la mateixa longitud. La funció sapply() del llenguatge R pren una llista, un vector o un marc de dades com a entrada i dóna sortida en forma d'un objecte matriu o matriu. Com que la funció sapply() aplica una determinada operació a tots els elements de l'objecte, no necessita un MARGE. És el mateix que lapply() amb l'única diferència que és el tipus d'objecte de retorn.
Sintaxi: sapply (x, diversió)
Paràmetres:
x: determina el vector d'entrada o un objecte. fun: determina la funció que s'ha d'aplicar a les dades d'entrada.
Exemple:
Aquí hi ha un exemple bàsic que mostra l'ús de la funció sapply() a un vector.
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)> |
Sortida:
funció tapply().
El tapply() ens ajuda a calcular mesures estadístiques (mitjana, mediana, mínima, màxima, etc.) o una operació de funció autoescrita per a cada variable factor en un vector. Ens ajuda a crear un subconjunt d'un vector i després aplicar algunes funcions a cadascun dels subconjunts. Per exemple, en una organització, si tenim dades de salari dels empleats i volem trobar el salari mitjà per a homes i dones, podem utilitzar la funció tapply() amb homes i dones com a variable de gènere.
Sintaxi: taply (x, índex, diversió)
Paràmetres:
x: determina el vector d'entrada o un objecte. índex: determina el vector factor que ens ajuda a distingir les dades. fun: determina la funció que s'ha d'aplicar a les dades d'entrada.
Exemple:
Aquí hi ha un exemple bàsic que mostra l'ús de la funció tapply() al conjunt de dades de diamants que proporciona la biblioteca de paquets 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)> |
Sortida: