如何在 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
广告