如何在 r 中使用 setdiff 函数(附示例)
R 中的setdiff()函数可用于查找两个集合之间的差异。该函数使用以下语法:
设置差异(x,y)
金子:
- x, y:包含元素序列的向量或数据框
本教程提供了该功能实际使用的几个示例。
示例 1:带有数值向量的 Setdiff
以下代码展示了如何使用setdiff()来识别向量a中未出现在向量b中的所有值:
#definevectors a <- c(1, 3, 4, 5, 9, 10) b <- c(1, 2, 3, 4, 5, 6) #find all values in a that do not occur in b setdiff (a,b) [1] 9 10
有两个出现在向量a中但没有出现在向量b中的值: 9和10 。
如果我们反转setdiff()函数中向量的顺序,我们可以识别向量b中未出现在向量a中的所有值:
#find all values in b that do not occur in a setdiff (b,a) [1] 2 6
有两个出现在向量b中但没有出现在向量a中的值: 2和6 。
示例 2:带有字符向量的 Setdiff
以下代码展示了如何使用setdiff()来识别char1向量中未出现在char2向量中的所有值:
#define character vectors char1 <- c('A', 'B', 'C', 'D', 'E') char2 <- c('A', 'B', 'E', 'F', 'G') #find all values in char1 that do not occur in char2 setdiff (char1, char2) [1] “C” “D”
示例 3:使用数据帧设置差异
下面的代码展示了如何使用setdiff()来识别一个数据框列中未出现在第二个数据框同一列中的所有值:
#define data frames df1 <- data. frame (team=c('A', 'B', 'C', 'D'), conference=c('West', 'West', 'East', 'East'), dots=c(88, 97, 94, 104)) df2 <- data. frame (team=c('A', 'B', 'C', 'D'), conference=c('West', 'West', 'East', 'East'), dots=c(88, 97, 98, 99)) #find differences between the points columns in the two data frames setdiff (df1$points, df2$points) [1] 94 104
我们可以看到,值94和104出现在第一个数据框的点列中,但没有出现在第二个数据框的点列中。
其他资源
如何对 R 中的特定列求和
如何对 R 中的特定行求和
如何在 R 中执行部分字符串匹配