在 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