Как сравнить два вектора в 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

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