Как сравнить два вектора в 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. Проверьте, совпадают ли два вектора

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

 #definevectors
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() для отображения элементов, существующих в обоих векторах:

 #definevectors
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() для отображения элементов, которые существуют в первом векторе, но отсутствуют во втором:

 #definevectors
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”

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

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

 #definevectors
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

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

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