Как использовать функцию 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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.