Cum să găsiți și să numărați valorile lipsă în R: un ghid cuprinzător cu exemple

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

Când lucrați cu date în R, este obișnuit să întâlniți valori lipsă, reprezentate de obicei ca NA. Identificarea și gestionarea acestor valori lipsă este crucială pentru curățarea și analiza datelor. În acest articol, vom explora diferite metode pentru a găsi și număra valorile lipsă în cadrele de date, coloanele și vectorii R, împreună cu exemple practice.

În R, valorile lipsă sunt notate cu NA (Nedisponibil). Aceste valori pot apărea din diverse motive, cum ar fi probleme de colectare a datelor, erori de introducere a datelor sau înregistrări incomplete. Este esențial să identificați și să gestionați în mod corespunzător valorile lipsă pentru a asigura o analiză și modelare precisă a datelor.

Pentru a găsi valorile lipsă într-un cadru de date, puteți utiliza funcția is.na(). Această funcție returnează o matrice logică care indică elementele care lipsesc (TRUE) și care nu sunt (FALSE).

Exemplu:

# Create a sample data frame with missing values
df <- data.frame(A = c(1, 2, NA, 4), 
                 B = c("a", NA, "c", "d"),
                 C = c(TRUE, FALSE, TRUE, NA))

# Find missing values in the data frame
is.na(df)
         A     B     C
(1,) FALSE FALSE FALSE
(2,) FALSE  TRUE FALSE
(3,)  TRUE FALSE FALSE
(4,) FALSE FALSE  TRUE

Pentru a număra numărul total de valori lipsă dintr-un cadru de date, puteți utiliza funcția sum() în combinație cu is.na().

Exemplu:

# Count the total number of missing values in the data frame
sum(is.na(df))

Pentru a număra numărul de valori lipsă din fiecare coloană a unui cadru de date, puteți aplica funcțiile sum() și is.na() la fiecare coloană folosind funcțiile sapply() sau colSums().

Exemplu folosind saply():

# Count missing values in each column using sapply()
sapply(df, function(x) sum(is.na(x)))

Exemplu folosind colSums():

# Count missing values in each column using colSums()
colSums(is.na(df))

Pentru a număra numărul de valori lipsă dintr-un vector, puteți utiliza direct funcțiile sum() și is.na().

Exemplu:

# Create a sample vector with missing values
vec <- c(1, NA, 3, NA, 5)

# Count missing values in the vector
sum(is.na(vec))

Pentru a identifica rândurile dintr-un cadru de date care conțin valori lipsă, puteți utiliza funcția complete.cases(). Această funcție returnează un vector logic care indică ce rânduri au date complete (TRUE) și care rânduri au valori lipsă (FALSE).

Exemplu:

# Identify rows with missing values
complete.cases(df)
(1)  TRUE FALSE FALSE FALSE

Pentru a filtra rândurile cu valori lipsă dintr-un cadru de date, puteți subseta cadrul de date folosind funcția complete.cases().

Exemplu:

# Filter rows with missing values
df_complete <- df(complete.cases(df),)
df_complete

Acum este rândul tău să exersezi găsirea și numărarea valorilor lipsă în R. Luați în considerare următorul cadru de date:

# Create a sample data frame
employee <- data.frame(
  Name = c("John", "Emma", "Alex", "Sophia", "Michael"),
  Age = c(28, 35, NA, 42, 31),
  Salary = c(50000, 65000, 58000, NA, 75000),
  Department = c("Sales", "Marketing", "IT", "Finance", NA)
)

Încercați să efectuați următoarele sarcini:

  1. Găsiți valorile lipsă în employee cadru de date.
  2. Numărați numărul total de valori lipsă din employee cadru de date.
  3. Numărați numărul de valori lipsă din fiecare coloană a employee cadru de date.
  4. Identificați rândurile cu valori lipsă în employee cadru de date.
  5. Filtrați rândurile cu valori lipsă din employee cadru de date.

După ce ați încercat sarcinile, comparați soluțiile dvs. cu cele furnizate mai jos.

Faceți clic pentru a dezvălui soluțiile

  1. Găsiți valorile lipsă în employee cadru de date:
is.na(employee)
      Name   Age Salary Department
(1,) FALSE FALSE  FALSE      FALSE
(2,) FALSE FALSE  FALSE      FALSE
(3,) FALSE  TRUE  FALSE      FALSE
(4,) FALSE FALSE   TRUE      FALSE
(5,) FALSE FALSE  FALSE       TRUE
  1. Numărați numărul total de valori lipsă din employee cadru de date:
  1. Numărați numărul de valori lipsă din fiecare coloană a employee cadru de date:
colSums(is.na(employee))
      Name        Age     Salary Department 
         0          1          1          1 
  1. Identificați rândurile cu valori lipsă în employee cadru de date:
complete.cases(employee)
(1)  TRUE  TRUE FALSE FALSE FALSE
  1. Filtrați rândurile cu valori lipsă din employee cadru de date:
employee_complete <- employee(complete.cases(employee),)
employee_complete
  Name Age Salary Department
1 John  28  50000      Sales
2 Emma  35  65000  Marketing
  • Valorile lipsă în R sunt reprezentate de NA.
  • Funcția is.na() este utilizată pentru a găsi valorile lipsă în cadre de date, coloane și vectori.
  • Funcția sum(), în combinație cu is.na(), poate fi folosită pentru a număra numărul total de valori lipsă.
  • Funcțiile sapply() sau colSums() pot fi utilizate pentru a număra valorile lipsă în fiecare coloană a unui cadru de date.
  • Funcția complete.cases() identifică rândurile cu valori lipsă și poate fi folosită pentru a filtra acele rânduri.

Gestionarea valorilor lipsă este un pas esențial în preprocesarea și analiza datelor. R oferă diverse funcții și tehnici pentru a găsi și număra valorile lipsă în cadre de date, coloane și vectori. Folosind funcții precum is.na(), sum(), sapply(), colSums() și complete.cases(), puteți identifica și gestiona eficient valorile lipsă din seturile dvs. de date. Nu uitați să verificați întotdeauna valorile lipsă și să decideți asupra unei strategii adecvate pentru a le trata pe baza cerințelor dvs. specifice de analiză.

  1. Ce reprezintă NA în R?
    • NA înseamnă „Not Available” și reprezintă valorile lipsă în R.
  2. Cum pot verifica dacă o anumită valoare dintr-un vector lipsește?
    • Puteți utiliza funcția is.na() pentru a verifica dacă lipsește o anumită valoare dintr-un vector. De exemplu, is.na(vec) verifică dacă lipsește primul element al vectorului vec.
  3. Pot folosi operatorul == pentru a compara valorile cu NA?
    • Nu, utilizarea operatorului == pentru a compara valorile cu NA nu vă va oferi rezultatele așteptate. Utilizați întotdeauna funcția is.na() pentru a verifica valorile lipsă.
  4. Cum pot calcula procentul de valori lipsă într-un cadru de date?
    • Pentru a calcula procentul de valori lipsă dintr-un cadru de date, puteți împărți numărul total de valori lipsă la numărul total de elemente din cadrul de date și puteți înmulți cu 100. De exemplu, (sum(is.na(df)) / prod(dim(df))) * 100.
  5. Ce se întâmplă dacă aplic o funcție precum mean() sau sum() unui vector care conține valori lipsă?
    • În mod implicit, funcții precum mean() și sum() returnează NA dacă vectorul conține valori lipsă. Pentru a exclude valorile lipsă din calcul, puteți utiliza argumentul na.rm = TRUE. De exemplu, mean(vec, na.rm = TRUE) calculează media vectorului ignorând valorile lipsă.

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.