Як використовувати функцію 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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *