Вы можете использовать следующий базовый синтаксис для сравнения двух векторов в 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