如何在 R 数据框的一列中检查前一个值和当前值之间的差是否为 1?


要检查 R 数据框一列中前一个值和当前值之间的差是否为 1,我们可以按照以下步骤操作:

  • 首先,创建一个数据框。
  • 然后,为前一个值和当前值之间的差创建一个自定义函数。
  • 现在,使用该函数检查差值。

示例 1

创建数据框

让我们创建一个如下所示的数据框:

 在线演示

> x<-1:20
> df1<-data.frame(x)
> df1

执行上述脚本后,会生成以下输出(由于随机化,此输出在您的系统上可能会有所不同):

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

创建自定义函数以检查差值

使用 abs 函数和 diff 函数创建一个新函数,以检查 R 数据框列中的所有值彼此之间是否都相差 1:

> is.one<-function(x){
   + all(abs(diff(x))==1)
+ }

检查差值

使用 is.one 函数检查 df1 中列 x 的当前值和前一个值之间是否存在 1 的差值:

> x<-1:20
> df1<-data.frame(x)
> is.one(df1$x)

输出

[1] TRUE

示例 2

创建数据框

让我们创建一个如下所示的数据框:

 在线演示

> y<-sample(1:20,20)
> df2<-data.frame(y)
> df2

执行上述脚本后,会生成以下输出(由于随机化,此输出在您的系统上可能会有所不同):

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

检查差值

使用 is.one 函数检查 df2 中列 y 的当前值和前一个值之间是否存在 1 的差值:

> y<-sample(1:20,20)
> df2<-data.frame(y)
> is.one(df2$y)

输出

[1] FALSE

更新于: 2021 年 8 月 13 日

352 次查看

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告