Как сравнить два вектора в R (с примерами)


Вы можете использовать следующий базовый синтаксис для сравнения двух векторов в R:

#check if two vectors are identical
identical(vector_1, vector_2)

#display items that are in both vectors
intersect(vector_1, vector_2)

#display items that are only in first vector, but not in second vector
setdiff(vector_1, vector_2)

В следующих примерах показано, как использовать этот синтаксис на практике.

Пример 1. Проверка идентичности двух векторов

В следующем коде показано, как использовать функцию идентичных() для проверки идентичности двух векторов:

#define vectors
vector_1 <- c('Andy', 'Bob', 'Carl', 'Doug')
vector_2 <- c('Bob', 'Carl', 'Doug', 'Ethan', 'Fred')

#check if two vectors are identical
identical(vector_1, vector_2)

[1] FALSE

Два вектора не идентичны, поэтому возвращается значение FALSE .

Пример 2: найти элементы, которые существуют в обоих векторах

В следующем коде показано, как использовать функцию intersect() для отображения элементов, существующих в обоих векторах:

#define vectors
vector_1 <- c('Andy', 'Bob', 'Carl', 'Doug')
vector_2 <- c('Bob', 'Carl', 'Doug', 'Ethan', 'Fred')

#display items that exist in both vectors
intersect(vector_1, vector_2)

[1] "Bob" "Carl" "Doug"

Отображаются три элемента, существующие в обоих векторах.

Мы также можем использовать функцию length() , если просто хотим узнать, сколько элементов существует в обоих векторах:

#find how many items exist in both vectors
length(intersect(vector_1, vector_2))

[1] 3

В обоих векторах существует три элемента.

Пример 3: поиск элементов, которые существуют только в одном векторе

В следующем коде показано, как использовать функцию setdiff() для отображения элементов, существующих в первом векторе, но не во втором:

#define vectors
vector_1 <- c('Andy', 'Bob', 'Carl', 'Doug')
vector_2 <- c('Bob', 'Carl', 'Doug', 'Ethan', 'Fred')

#display items that exist in first vector, but not in second vector
setdiff(vector_1, vector_2)

[1] "Andy"

В первом векторе существует ровно один элемент, которого нет во втором векторе.

Мы можем поменять местами два вектора, чтобы идентифицировать элементы, которые существуют во втором векторе, но не в первом:

#define vectors
vector_1 <- c('Andy', 'Bob', 'Carl', 'Doug')
vector_2 <- c('Bob', 'Carl', 'Doug', 'Ethan', 'Fred')

#display items that exist in second vector, but not in first vector
setdiff(vector_2, vector_1)

[1] "Ethan" "Fred"

Во втором векторе существуют два элемента, которых нет в первом.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:

Как сравнить два столбца в R
Как сравнивать строки в R
Как добавить значения к вектору с помощью цикла в R