如何在 R 資料框列中查詢小於等於閾值的連續出現的頻率?


要查詢 R 資料框列中小於閾值的小於等於閾值的連續出現的頻率,我們可以使用 rle 函式以及 sum 函式。

檢視下面給出的示例,以瞭解如何操作。

示例 1

以下程式碼片段建立了一個示例資料框 -

x<-round(rnorm(20,1,2.5),0)
df1<-data.frame(x)
df1

建立了以下資料框 -

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

要在列 x 中查詢小於等於 1 的連續出現的頻率,請將以下程式碼新增到上述程式碼片段中 -

x<-round(rnorm(20,1,2.5),0)
df1<-data.frame(x)
sum(rle(df1$x<=1)$values)

輸出

如果您將上面給出的所有程式碼片段作為一個程式執行,它將生成以下輸出 -

[1] 6

示例 2

以下程式碼片段建立了一個示例資料框 -

y<-round(rnorm(20,5,10),0)
df2<-data.frame(y)
df2

建立了以下資料框 -

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

要在列 y 中查詢小於等於 5 的連續出現的頻率,請將以下程式碼新增到上述程式碼片段中 -

y<-round(rnorm(20,5,10),0)
df2<-data.frame(y)
sum(rle(df2$y<=5)$values)

輸出

如果您將上面給出的所有程式碼片段作為一個程式執行,它將生成以下輸出 -

[1] 5

示例 3

以下程式碼片段建立了一個示例資料框 -

z<-sample(0:5,20,replace=TRUE)
df3<-data.frame(z)
df3

建立了以下資料框 -

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

要在列 z 中查詢小於等於 4 的連續出現的頻率,請將以下程式碼新增到上述程式碼片段中 -

z<-sample(0:5,20,replace=TRUE)
df3<-data.frame(z)
sum(rle(df3$z<=4)$values)

輸出

如果您將上面給出的所有程式碼片段作為一個程式執行,它將生成以下輸出 -

[1] 2

更新於: 2021-11-22

213 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.