滚动最小,固定起点

时间:2018-01-08 01:01:12

标签: r

好的,所以我想计算数据框中的滚动最小值,滚动列。到目前为止,我无法确定起点并滚动到系列的结尾。我试过了:

mins <- c(10,5,6,10,6,6,7,8,2,12)
roll.min.expected <- c(10,5,5,5,5,5,5,5,2,2)
df <- data.frame(mins,roll.min.expected)
rollapplyr(df$mins, length(nrow(df)), min, partial = TRUE)

这是预期的输出:

   mins roll.min.expected
1    10                10
2     5                 5
3     6                 5
4    10                 5
5     6                 5
6     6                 5
7     7                 5
8     8                 5
9     2                 2
10   12                 2

打印最小值直到找到下一个最小值

1 个答案:

答案 0 :(得分:3)

您可以使用Reduce选项accumulate=T来实现这一目标:

Reduce(min,mins,accumulate=T)
 [1] 10  5  5  5  5  5  5  5  2  2

或者更简单地说,就像@Henrik在评论中提到的那样,使用返回累积最小值的cummin函数:

cummin(mins)
[1] 10  5  5  5  5  5  5  5  2  2