在列中查找最大值

时间:2011-12-16 10:38:50

标签: r max

我的数据在列中。我需要扫描每3行并输出最大值。这是一种移动平均技术,但我不希望数据被平均。最大值是我的主要关注点。 例如29.66,29.59,30.05 =最大值是30.05
然后移至29.59,29.59,30.05 =最大值为30.05

如何在R软件中做到这一点?

29.66
29.59
30.05
29.59
29.59
30.05
29.59
29.92
30.26
30.18
30.47

2 个答案:

答案 0 :(得分:3)

rollapply中的函数zoo应该可以解决问题:

library(zoo)
values = c(29.66, 29.59, 30.05, 29.59, 29.59, 30.05, 29.59, 29.92, 30.26, 30.18, 30.47)

rollmax(values, k=3)
# or
rollapply(values, 3, max)

# [1] 30.05 30.05 30.05 30.05 30.05 30.05 30.26 30.26 30.47

答案 1 :(得分:2)

请参阅动物园套餐中的rollapplyrollapply(x, 3, max)