Как использовать функцию 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
Как использовать функцию репликации() в R
Как использовать функцию gsub() в R
Как использовать функцию par() в R

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *