在 R 数据框列中查找序列中缺失的数字。

r programmingserver side programmingprogramming更新于 2025/4/9 13:07:17

要查找 R 数据框列中序列中缺失的数字,我们可以使用 setdiff 函数。

例如,如果我们有一个名为 df 的数据框,其中包含一个列,例如 X,并且我们想检查此列中缺失 1 到 20 之间的哪些值,那么我们可以使用以下命令 −

setdiff(1:20,df$X)

示例 1

以下代码片段创建了一个示例数据框 −

x<-rpois(20,5)
df1<-data.frame(x)
df1

创建以下数据框

   x
1  4
2  4
3  5
4  5
5  6
6  6
7  7
8  7
9  5
10 7
11 4
12 5
13 5
14 4
15 4
16 7
17 7
18 1
19 7
20 5

要在上面创建的数据框中查找 x 中 1 到 10 之间缺失的数字,请将以下代码添加到上面的代码片段中 −

x<-rpois(20,5)
df1<-data.frame(x)
setdiff(1:10,df1$x)

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −

[1] 2 3 8 9 10

示例 2

以下代码片段创建了一个示例数据框 −

y<-c(1:3,5:10,21:30,35)
df2<-data.frame(y)
df2

创建以下数据框

   y
1  1
2  2
3  3
4  5
5  6
6  7
7  8
8  9
9  10
10 21
11 22
12 23
13 24
14 25
15 26
16 27
17 28
18 29
19 30
20 35

要在上面创建的数据框中查找 y 中 1 到 35 之间缺失的数字,请将以下代码添加到上面的代码片段中 −

y<-c(1:3,5:10,21:30,35)
df2<-data.frame(y)
setdiff(1:35,df2$y)

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −

[1] 4 11 12 13 14 15 16 17 18 19 20 31 32 33 34

示例 3

以下代码片段创建了一个示例数据框 −

z<-sample(1:100,20)
df3<-data.frame(z)
df3

创建以下数据框

   z
1  84
2  7
3  40
4  87
5  9
6  51
7  3
8  97
9  78
10 69
11 26
12 4
13 61
14 99
15 91
16 81
17 48
18 47
19 80
20 22

为了在上面创建的数据框中查找 z 中 1 到 100 之间缺失的数字,请将以下代码添加到上面的代码片段中 −

z<-sample(1:100,20)
df3<-data.frame(z)
setdiff(1:100,df3$z)

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −

[1]  1 2 5 6 8 10 11 12 13 14 15 16 17 18 19 20 21 23 24
[20] 25 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45
[39] 46 49 50 52 53 54 55 56 57 58 59 60 62 63 64 65 66 67 68
[58] 70 71 72 73 74 75 76 77 79 82 83 85 86 88 89 90 92 93 94
[77] 95 96 98 100

相关文章