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 = FALSEignoră 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.
