Cum se compară doi vectori în baza R cu exemple

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

Introducere

În calitate de programator R începător, s-ar putea să fie nevoie adesea să compari doi vectori pentru a verifica egalitatea, pentru a găsi elemente comune sau pentru a identifica diferențele. În acest articol, vom explora diferite metode de comparare a vectorilor în baza R, inclusiv match(), %in%, identical()și all.equal(). Până la sfârșit, veți avea o înțelegere solidă despre cum să comparați eficient vectorii în proiectele dvs. R.

Metode de comparare a vectorilor în R

1. Folosind match() Funcţie

The match() funcția din R returnează indicii elementelor comune între doi vectori. Găsește prima poziție a fiecărei valori potrivite. Iată un exemplu:

value <- c(15, 13, 12, 14, 12, 15, 30)
match(12, value)

De asemenea, îi puteți transmite un vector cu mai multe valori match():

The match() funcția returnează prima poziție a fiecăreia dintre valori atunci când este dat un vector.

2. Folosind %in% Operator

Dacă aveți nevoie doar de un răspuns TRUE/FALSE care indică dacă o valoare din primul vector este prezentă în al doilea, puteți utiliza %in% operator. Ea efectuează o operație similară cu match() dar returnează un vector boolean.

Pentru a verifica o singură valoare folosind %in%:

Pentru a verifica un vector cu mai multe valori:

The %in% operatorul returnează TRUE pentru valorile prezente în al doilea vector și FALSE pentru cele care nu sunt.

3. Folosind identical() şi all.equal()

Pentru a verifica dacă doi vectori sunt exact la fel, puteți utiliza identical() funcţie:

a <- c(1, 2, 3)
b <- c(1, 2, 3)
identical(a, b)

Dacă există unele diferențe de atribute pe care doriți să le ignorați în comparație, utilizați all.equal() cu check.attributes = FALSE:

all.equal(a, b, check.attributes = FALSE)

4. Folosind all() cu Comparație în funcție de elemente

O modalitate compactă de a verifica dacă toate elementele a doi vectori sunt egale este să utilizați all() cu o comparație pe elemente:

Această abordare este concisă și ușor de citit, ceea ce o face o alegere bună în multe situații.

Rândul tău!

Acum că ați văzut diferite metode de a compara vectori în R, este timpul să exersați pe cont propriu. Încercați următorul exercițiu:

Creați doi vectori vec1 şi vec2 cu unele elemente comune și unele diferite. Apoi, utilizați fiecare dintre metodele discutate mai sus pentru a compara vectorii și a observa rezultatele.

vec1 <- c(10, 20, 30, 40, 50)
vec2 <- c(30, 40, 50, 60, 70)

# Your code here

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

vec1 <- c(10, 20, 30, 40, 50)
vec2 <- c(30, 40, 50, 60, 70)

# Using match()
match(vec1, vec2)
# (1) NA NA  1  2  3

# Using %in%
vec1 %in% vec2
# (1) FALSE FALSE  TRUE  TRUE  TRUE

# Using identical()
identical(vec1, vec2)
# (1) FALSE

# Using all.equal()
all.equal(vec1, vec2)
# (1) "Mean relative difference: 0.6"

# Using all() with element-wise comparison
all(vec1 == vec2)
# (1) FALSE

Fast Takeaways

  • Utilizare match() pentru a găsi indicii elementelor comune între doi vectori.
  • The %in% operatorul verifică dacă valorile unui vector sunt prezente în altul, returnând un vector boolean.
  • identical() verifică dacă doi vectori sunt exact la fel.
  • all.equal() cu check.attributes = FALSE ignoră diferențele de atribute la compararea vectorilor.
  • all() cu compararea elementelor este o modalitate compactă de a verifica dacă toate elementele a doi vectori sunt egale.

Concluzie

Compararea vectorilor este o sarcină fundamentală în programarea R, iar baza R oferă mai multe funcții și operatori pentru a face acest lucru ușor. Prin stăpânirea folosirii match(), %in%, identical(), all.equal()și comparație în funcție de elemente cu all()veți fi bine echipat pentru a gestiona comparații vectoriale în proiectele dvs. R. Nu uitați să alegeți metoda cea mai potrivită în funcție de cerințele dumneavoastră specifice și de formatul de ieșire dorit.

Întrebări frecvente

  1. Î: Care este diferența dintre match() şi %in% când se compară vectorii în R?

O: match() returnează indicii elementelor comune, în timp ce %in% returnează un vector boolean care indică dacă fiecare element al primului vector este prezent în al doilea.

  1. Î: Cum pot verifica dacă doi vectori sunt exact la fel în R?

A: Utilizați identical() funcție pentru a verifica dacă doi vectori sunt exact la fel, inclusiv atributele.

  1. Î: Ce ar trebui să folosesc dacă vreau să ignor diferențele de atribute când compar vectorii?

A: Folosește all.equal() cu argumentul check.attributes = FALSE pentru a ignora diferențele de atribute la compararea vectorilor.

  1. Î: Există o modalitate concisă de a verifica dacă toate elementele a doi vectori sunt egale?

R: Da, puteți folosi all() cu comparație în funcție de elemente, astfel: all(vec1 == vec2).

  1. Î: Pot compara vectori de lungimi diferite folosind aceste metode?

R: Da, majoritatea acestor metode pot gestiona vectori de diferite lungimi. Cu toate acestea, fiți precaut când interpretați rezultatele, deoarece vectorul mai scurt va fi reciclat pentru a se potrivi cu lungimea celui mai lung.

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.