如何在 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 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始
广告