好的,所以我想计算数据框中的滚动最小值,滚动列。到目前为止,我无法确定起点并滚动到系列的结尾。我试过了:
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
打印最小值直到找到下一个最小值
答案 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