(Acest articol a fost publicat pentru prima dată pe R-posts.comși a contribuit cu drag la R-Bloggers). (Puteți raporta problema despre conținutul de pe această pagină aici)
Doriți să vă împărtășiți conținutul pe R-Bloggers? Faceți clic aici dacă aveți un blog sau aici dacă nu.
apply()
Familia de funcții în R este un instrument puternic pentru aplicarea operațiunilor pe structuri de date precum matrice, cadre de date și liste. Aceste funcții vă ajută să scrieți un cod concis și eficient, evitând bucle explicite. Iată ce vom acoperi:
-
-
Introducere: O scurtă privire de ansamblu a
apply()
Familia și de ce este important în programarea R. -
Sintaxa de bază: O explicație detaliată a sintaxei și a parametrilor pentru
apply()
,lapply()
șisapply()
. -
Exemple: Exemple de cod practic pentru a demonstra cum funcționează fiecare funcție.
-
Cazul utilizării: Scenarii din lumea reală în care aceste funcții pot fi aplicate eficient.
-
Puncte cheie: Un rezumat al principalelor preluări și cele mai bune practici pentru utilizarea acestor funcții.
-
Sensul: O reflecție asupra semnificației
apply()
Familia în programare R. -
Concluzie: Un ambalaj care încurajează cititorii să practice și să exploreze aceste funcții în continuare.
-
1. Introducere
O scurtă privire de ansamblu asupra apply()
Familia și de ce este important în programarea R.
2. Sintaxa de bază
apply()
Familia include funcții precum apply()
, lapply()
și sapply()
.
Scopul general al acestor funcții este de a aplica o funcție structurilor de date precum matrice, cadre de date sau liste.
Sintaxa de bază pentru fiecare funcție:
apply(X, MARGIN, FUN, ...) lapply(X, FUN, ...) sapply(X, FUN, ...)
Parametrii:
-
- X: Datele de intrare (matricea, cadrul de date sau lista).
- Marjă: Pentru
apply()
specifică rândurile (1
) sau coloane (2
) Marja = 1: Aplicați funcția pe rânduri. Marja = 2: Aplicați funcția pe coloane. - DISTRACŢIE: Funcția de aplicat.
- …: Argumente suplimentare pentru funcție.
3. Exemple
Să ne aruncăm în câteva exemple practice pentru a înțelege cum funcționează aceste funcții.
Exemplu pentru aplicare ()
# Apply max function to columns of a matrix matrix_data <- matrix(1:9, nrow = 3) apply(matrix_data, 2, max)
-
-
matrix_data
: Aceasta creează o matrice 3 × 3.(,1) (,2) (,3) (1,) 1 4 7 (2,) 2 5 8 (3,) 3 6 9
-
apply(matrix_data, 2, max)
: Theapply()
funcția este utilizată pentru a aplicamax
Funcționează la fiecare coloană a matricei (pentru căMARGIN = 2
) -
Calculează valoarea maximă pentru fiecare coloană:
-
Coloana 1:
max(1, 2, 3) = 3
-
Coloana 2:
max(4, 5, 6) = 6
-
Coloana 3:
max(7, 8, 9) = 9
-
-
Rezultat:
(1) 3 6 9
Explicaţie: apply()
Funcția calculează valoarea maximă pentru fiecare coloană a matricei.
-
-
MARGIN = 2
: Aplicați funcția Înțelept pe coloană (adică, la fiecare coloană a matricei). -
Dacă
MARGIN = 1
funcția ar fi aplicată Rând (adică, la fiecare rând al matricei). -
Dacă intrarea este un tablou de dimensiuni superioare, puteți utiliza
MARGIN = 3
,MARGIN = 4
etc., pentru a aplica funcția de -a lungul altor dimensiuni.
-
Exemplu pentru lapply ()
# Apply a function to each element of a list numbers <- list(1, 2, 3, 4) squares <- lapply(numbers, function(x) x^2) print(squares)
Rezultat:
((1)) (1) 1 ((2)) (1) 4 ((3)) (1) 9 ((4)) (1) 16
Explicaţie: lapply()
funcția aplică funcția pătrată (x^2
) la fiecare element al listei numbers
. Ieșirea este o listă în care fiecare element este pătratul intrării corespunzătoare.
Exemplu pentru sapply ()
# Simplify the output of lapply() to a vector squared_vector <- sapply(numbers, function(x) x^2) print(squared_vector)
Rezultat:
(1) 1 4 9 16
Explicaţie: sapply()
funcția simplifică ieșirea din lapply()
într -un vector numeric. Fiecare element al vectorului este pătratul intrării corespunzătoare.
4. Cazul utilizării
Aceste funcții sunt incredibil de utile în scenariile din lumea reală. Iată câteva exemple:
-
- Rezumarea datelor: Utilizare
apply()
Pentru a calcula mijloacele de rând sau coloană, sume sau alte statistici într -un cadru de date. - Iterarea listelor: Utilizare
lapply()
Pentru a curăța sau transforma mai multe seturi de date stocate într -o listă. - Simplificarea sarcinilor repetitive: Utilizare
sapply()
pentru a evita scrierea unor bucle explicite pentru operațiuni vectorizate.
- Rezumarea datelor: Utilizare
5. Puncte cheie
Iată care sunt principale pentru a lua în considerare apply()
Familia de funcții:
-
- Aplicați (): Funcționează pe matrice sau cadre de date; necesită specificarea rândurilor (
1
) sau coloane (2
) - lapply (): Funcționează pe liste; Returnează întotdeauna o listă.
- sapply (): Simplifică ieșirea din
lapply()
la un vector sau o matrice când este posibil.
- Aplicați (): Funcționează pe matrice sau cadre de date; necesită specificarea rândurilor (
Cele mai bune practici:
-
- Utilizare
na.rm = TRUE
Pentru a gestiona valorile lipsă. - Prefera
sapply()
Când aveți nevoie de o ieșire simplificată. - Utilizare
lapply()
Atunci când lucrați cu liste și păstrați structura listei este important.
- Utilizare
6. Sensul
apply()
familia de funcții este fundamentală pentru Programare funcțională În R. Aceste funcții:
-
- Promova cod eficient și concis prin evitarea buclelor explicite.
- Permite Operații vectorizatecare sunt mai rapide și mai eficiente în memorie decât buclele tradiționale.
- Faceți mai mult codul dvs. lizibil și întreținut.
Stăpânirea acestor funcții poate îmbunătăți semnificativ fluxurile de lucru ale analizei datelor.
7. Concluzie
apply()
Familia de funcții este o cunoaștere obligatorie pentru oricine lucrează cu R. Indiferent dacă rezumați date, iterați pe liste sau simplificați sarcini repetitive, aceste funcții vă pot economisi timp și efort.
Următorii pași:
-
- Practicați utilizarea
apply()
,lapply()
șisapply()
în propriile proiecte. - Explorați funcții conexe precum
tapply()
,mapply()
șivapply()
.
- Practicați utilizarea
Codificare fericită!
Familia de funcții aplicate () din R a fost postată pentru prima dată pe 13 aprilie 2025 la 7:08.