如何在 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:检查两个向量是否相同
以下代码显示如何使用equal()函数检查两个向量是否相同:
#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 中执行其他常见任务: