我需要搜索数据框,如下所示: 如果等级在时间= 1时超过50%,则在时间= 3时降至50%以下,然后在时间= 4时低于时间= 7时低于时间,然后在时间8时低于等于12%等等。 ...然后它高于2秒,然后是3秒,然后是4秒等。 ...所以最终的结果是最大时间超过50%,在这种情况下是4秒(根据下面的数据框部分)。 所以我需要将值4分配给max(maxGradeTimePeriod) 这个简单的代码好吗?提前谢谢。
这是我迄今为止所尝试过的(许多尝试中的一次!):
<tr ng-repeat="d in $data" >
示例数据框:
<tr ng-repeat="d in data" >
答案 0 :(得分:0)
假设每行是一个时间单位,请尝试:
y <- rle(x$grade >= 0.5) # Find clusters of values not below 0.5
max(y$length[which(y$values)]) # Find which TRUE cluster is the largest
# [1] 4
可能是时间点没有均匀间距。在这种情况下,请尝试:
x2 <- rle(x$grade >= 0.5)$length # Get all clusters
x3 <- rep(seq_along(x2), x2) # Make a vector that specifies cluster per value
time <- c(0, diff(x$time)) # Make a new vector with time differences
y <- aggregate(time ~ x3, FUN=sum) # Aggregate the sum of time per cluster
max(y$time) # Take the max
# [1] 4