一千萬個為什麽

搜索

在列中查找最大值

我的數據在列中。我需要掃描每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

最佳答案

zoo 中的函數 rollapply 應該可以解決問題:

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

轉載註明原文: 在列中查找最大值