查找使条件最大化的一系列行

时间:2019-02-13 20:56:11

标签: r

我想在数据集中找到最常满足条件的一系列连续行。

我有两列可用于此目的;基于条件的存在或不存在,带有一和零的值会交替出现,或者会在存在理想条件的持续时间内递增一列。我预想我将需要使用subset()filter()和/或rle()来实现这一目标,但是在如何使其工作上不知所措。 >

在该示例中,我想找到6个连续的行,这些行使出现happens的实例最大化。

输入:

library(data.frame)
df<-data.frame(time=c(1:10),happens=c(1,1,0,0,1,1,1,0,1,1),count=c(1,2,0,0,1,2,3,0,1,2))

我希望使用第happenscount列将第5至10行(包括第10行)作为输出,作为数据子集输出,因为此行序列将产生最高的输出在连续6行中出现happens个事件。

1 个答案:

答案 0 :(得分:1)

library(zoo)
which.max( rollapply( df$happens, 6, sum) )
#[1] 5

6行的第五个窗口显然拥有df $ happens的最大和
答案是第5:10行