我想在数据集中找到最常满足条件的一系列连续行。
我有两列可用于此目的;基于条件的存在或不存在,带有一和零的值会交替出现,或者会在存在理想条件的持续时间内递增一列。我预想我将需要使用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))
我希望使用第happens
或count
列将第5至10行(包括第10行)作为输出,作为数据子集输出,因为此行序列将产生最高的输出在连续6行中出现happens
个事件。
答案 0 :(得分:1)
library(zoo)
which.max( rollapply( df$happens, 6, sum) )
#[1] 5
6行的第五个窗口显然拥有df $ happens的最大和
答案是第5:10行