Familia aplicată () de funcții în r

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

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

    1. Introducere: O scurtă privire de ansamblu a apply() Familia și de ce este important în programarea R.

    2. Sintaxa de bază: O explicație detaliată a sintaxei și a parametrilor pentru apply(), lapply()și sapply().

    3. Exemple: Exemple de cod practic pentru a demonstra cum funcționează fiecare funcție.

    4. Cazul utilizării: Scenarii din lumea reală în care aceste funcții pot fi aplicate eficient.

    5. Puncte cheie: Un rezumat al principalelor preluări și cele mai bune practici pentru utilizarea acestor funcții.

    6. Sensul: O reflecție asupra semnificației apply() Familia în programare R.

    7. 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)
    1. matrix_data: Aceasta creează o matrice 3 × 3.

      (,1) (,2) (,3)
      (1,)    1    4    7
      (2,)    2    5    8
      (3,)    3    6    9
    2. apply(matrix_data, 2, max): The apply() funcția este utilizată pentru a aplica max Funcționează la fiecare coloană a matricei (pentru că MARGIN = 2)

    3. 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 = 1funcț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 = 4etc., 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.

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.

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.

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()și sapply() în propriile proiecte.
    • Explorați funcții conexe precum tapply(), mapply()și vapply().

Codificare fericită!


Familia de funcții aplicate () din R a fost postată pentru prima dată pe 13 aprilie 2025 la 7:08.

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.