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()
cucheck.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
- Î: 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.
- Î: 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.
- Î: 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.
- Î: 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)
.
- Î: 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.