R语言 两个向量的区别
在这篇文章中,我们将看到如何在R编程语言中找到两个向量之间的差异。
在R编程中,两个向量之间的差值 (A-B) 相当于A中存在而B中不存在的元素,结果元素总是A的一个子集。
方法1:使用setdiff()方法
R中的setdiff()方法用于检索矢量X中不包含在Y中的元素。这个方法可以应用于两个矢量可能属于不同的数据类型,以及第一个参数矢量的元素未经修改就被返回。如果输入向量是等价的,也就是说,它们包含相同的元素,那么结果向量将有空条目,并由datatype(0)输出来表示。另外,在函数调用过程中,改变向量的顺序会得到不同类型的结果。
语法
setdiff( X, Y)
例子
输出
这种方法对字符串向量也适用。
例子
输出
另外,这个方法自动返回结果向量的唯一元素。任何重复的元素都会被删除。
例子
输出
方法2:使用%in%操作符
可以使用%in%运算符来检查列表中是否有元素。这种方法首先检查向量1的哪些索引不在向量2中,然后返回向量1的相应元素。随后应用unique()方法,只返回结果向量中的唯一元素。
语法
vec1[! vec1 %in% vec2]
例子
输出
这种方法也适用于属于不同数据类型的向量。在这种情况下,将返回vec1的元素。
例子
输出
方法3:使用intersect方法
Base R中的intersect()方法是用来计算指定参数向量中元素的交集。它返回一个包含两个输入向量中所有元素的向量数组。这个方法包括两个步骤,首先,intersect()方法返回相交数组。接下来,是应用%in%运算符的否定来获得第一个向量中不存在于相交处的元素。返回的元素将只包含在第一个向量中。
举个例子 。
输出