如何在 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 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.