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