Як використовувати функцію match() у r (з прикладами)
Функція match() у R повертає позицію першого збігу між двома об’єктами.
Ця функція використовує такий базовий синтаксис:
match(object1, object2)
У наведених нижче прикладах показано, як використовувати цю функцію в різних сценаріях.
Приклад 1: Зіставлення значення у векторі
У наступному коді показано, як використовувати функцію match() для пошуку першого входження певного значення у вектор:
#define value to look for in vector
value <- 10
#define vector of values
vector1 <- c(8, 9, 1, 10, 13, 15)
#find first occurrence of 10
match(value, vector1)
[1] 4
Це означає, що значення 10 спочатку з’являється в 4-й позиції вектора.
Зауважте, що якщо збігаються кілька значень, повертатиметься лише позиція першого збігу.
Наприклад, наступний вектор має два значення, що дорівнюють 10, але повертається лише позиція перших 10:
#define value to look for in vector
value <- 10
#define vector of values with multiple '10' values
vector1 <- c(8, 9, 1, 10, 10, 10)
#find first occurrence of 10
match(value, vector1)
[1] 4
Значення 10 відображається в позиціях 4, 5 і 6, але повертається лише позиція 4 .
Приклад 2: зіставлення значень у двох векторах
Наступний код показує, як використовувати функцію match() , щоб знайти перше входження значень в одному векторі в іншому векторі:
#define vectors of values
vector1 <- c(1, 2, 3, 4, 5, 6)
vector2 <- c(8, 6, 1, 10, 10, 15)
#find first occurrence of values in vector1 within vector2
match(vector1, vector2)
[1] 3 NA NA NA NA 2
Ось як інтерпретувати результат:
- Перше значення 1 у векторі1 відбувається в позиції 3 вектора2.
- Значення 2 у векторі1 ніколи не з’являється у векторі2.
- Значення 3 у векторі1 ніколи не з’являється у векторі2.
- Значення 4 у векторі1 ніколи не з’являється у векторі2.
- Значення 5 у векторі1 ніколи не з’являється у векторі2.
- Перше значення 6 у векторі1 відбувається в позиції 2 вектора2.
Зверніть увагу, що ми також можемо вказати інше значення для використання у випадках, коли немає відповідності.
Наприклад, ми можемо повернути значення 0 замість NA:
#define vectors of values
vector1 <- c(1, 2, 3, 4, 5, 6)
vector2 <- c(8, 6, 1, 10, 10, 15)
#find first occurrence of values in vector1 within vector2
match(vector1, vector2, nomatch= 0 )
[1] 3 0 0 0 0 2
Додаткові ресурси
У наступних посібниках пояснюється, як використовувати інші поширені функції в R:
Як використовувати функцію summary() у R
Як використовувати функцію replicate() у R
Як використовувати функцію gsub() у R
Як використовувати функцію par() у R