如何在 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中的值: 910

如果我们反转setdiff()函数中向量的顺序,我们可以识别向量b中未出现在向量a中的所有值:

 #find all values in b that do not occur in a
setdiff (b,a)

[1] 2 6

有两个出现在向量b中但没有出现在向量a中的值: 26

示例 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

我们可以看到,值94104出现在第一个数据框的点列中,但没有出现在第二个数据框的点列中。

其他资源

如何对 R 中的特定列求和
如何对 R 中的特定行求和
如何在 R 中执行部分字符串匹配

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注