我想跟进我最近的question
我有以下数据库,并且我正在寻找具有一定数量的连续值超过特定阈值的行,例如:
在以下数据帧df
中。我想返回一个向量result
,该向量指示哪些行满足以下条件:该行中至少5个连续值consecutiveentries
低于threshold
-1.2。
set.seed(125)
df <- data.frame(V1=rnorm(10,-1.5,.5),
V2=rnorm(10,-1.5,.5),
V3=rnorm(10,-1.5,.5),
V4=rnorm(10,-1.5,.5),
V5=rnorm(10,-1.5,.5),
V6=rnorm(10,-1.5,.5),
V7=rnorm(10,-1.5,.5),
V8=rnorm(10,-1.5,.5),
V9=rnorm(10,-1.5,.5),
V10=rnorm(10,-1.5,.5))
rownames(df) <- c(seq(1976,1985,1))
threshold = -1.2
consecutiveentries = 5
number <- consecutiveentries-1
result <- as.numeric(names(which(apply(df, 1, function(x) with(rle(x < threshold), any(lengths[values] > number))))))
result
[1] 1985
现在,我想更进一步。我想检查5个连续的数字consecutiveentries
,没有行尾数限制。换句话说,如果在前一行中的值低于threshold
-例如,在行1976的末尾有5个值低于threshold
-1.2,并且有两个第一个值低于{{1} }在1977行的开头,那么我想为三种选择提供解决方案。返回第二行的名称(其中两行中的5个连续值均符合条件)为threshold
,或者返回第一行的名称为result2
。最后,将两个值都返回为result1
。
结果如下:
result3