在 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