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