在 R 数据框列中查找小于等于阈值的连续出现频率?

r programmingserver side programmingprogramming

要查找 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

相关文章