如何在 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
广告